首页上一页 1 下一页尾页 1 条记录 1/1页
图片上传问题
发表在PHP图书答疑
2009-10-31
是否精华
是
否
版块置顶:
是
否
你好!
网络编程自学手册中mr\15\sl\17中能够通过浏览器操纵PHP插入图片到数据库中,但是当从浏览器中读取数据库中的图片时却不能显示,而是出现乱码,同时在图片的地方出现小红叉,而没有图片,请问是什么原因?为什么在浏览器无法读取数据库中的图片?
插入图片到数据库中的代码如下:
<?php include("conn/conn.php");
if ($page=="") {$page=1;}
?>
<?php
$file_name = $_POST['file_name'];
$files = $_POST['files'];
if($_POST['sc']==true){
$file_name=htmlspecialchars($file_name);
$file_name=str_replace("\n","<br>",$file_name);
$file_name=str_replace(" "," ",$file_name);
$dates=date("Y:m:d");
$fp=fopen($files,"rb");
$files=addslashes(fread($fp,filesize($files)));
if($files){
$query="insert into tb_upfile (file_name,files,dates) values ('".$file_name."','".$files."','".$dates."')";
$result = mysql_query($query,$id);
echo mysql_error();
echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php\">请稍后···";
}else{
echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php\">请输入图片···";
}
}
?>
读取数据库图片的代码如下:
<?php
$query="select * from tb_upfile where id order by id desc";
$lttb=mysql_query($query);
$myrow=mysql_fetch_array($lttb);
for($i=1; $i<=count($myrow); $i++) { //如果变量<=4,按照行进行循环,输出行
echo "<tr>"; ?>
<?php if($i==1){
$query="select * from tb_upfile where id order by id desc";
$lttb=mysql_query($query); }
$j=1; //设置变量$j=1
while ($myrow=mysql_fetch_array($lttb)){ //进行while循环输出
if ($j<=2) { //每行的表情图个数<=8,输出如下内容
if ($c==0){ $c="checked"; }
?>
<td width="550" align="center" valign="middle" bgcolor="#FFFFFF">
<table width="265" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bgcolor="#FDB62A">
<tr>
<td width="74" height="25" align="center" bgcolor="#FFFFFF"><span class="STYLE2">图片名称:</span></td>
<td width="183" bgcolor="#FFFFFF" class="STYLE2"><?php echo $myrow[file_name];?></td>
</tr>
<tr>
<td colspan="2" align="center" bgcolor="#FFFFFF"><img src="image_1.php?recid=<?php echo $myrow[id];?>" border="0"></td>
</tr>
<tr>
<td height="25" align="center" bgcolor="#FFFFFF" class="STYLE2">上传时间:</td>
<td bgcolor="#FFFFFF" class="STYLE2"><?php echo $myrow[dates];?></td>
</tr>
</table>
</td>
<?php }
$c=1;
++$j; //当表情图的个数增加时
if($j==3){ break; } //当表情图的个数等于9时,跳转到下一行重新进行循环
}
echo "</tr>";
}
?>
请老师给指导一下,谢谢!
网络编程自学手册中mr\15\sl\17中能够通过浏览器操纵PHP插入图片到数据库中,但是当从浏览器中读取数据库中的图片时却不能显示,而是出现乱码,同时在图片的地方出现小红叉,而没有图片,请问是什么原因?为什么在浏览器无法读取数据库中的图片?
插入图片到数据库中的代码如下:
<?php include("conn/conn.php");
if ($page=="") {$page=1;}
?>
<?php
$file_name = $_POST['file_name'];
$files = $_POST['files'];
if($_POST['sc']==true){
$file_name=htmlspecialchars($file_name);
$file_name=str_replace("\n","<br>",$file_name);
$file_name=str_replace(" "," ",$file_name);
$dates=date("Y:m:d");
$fp=fopen($files,"rb");
$files=addslashes(fread($fp,filesize($files)));
if($files){
$query="insert into tb_upfile (file_name,files,dates) values ('".$file_name."','".$files."','".$dates."')";
$result = mysql_query($query,$id);
echo mysql_error();
echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php\">请稍后···";
}else{
echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php\">请输入图片···";
}
}
?>
读取数据库图片的代码如下:
<?php
$query="select * from tb_upfile where id order by id desc";
$lttb=mysql_query($query);
$myrow=mysql_fetch_array($lttb);
for($i=1; $i<=count($myrow); $i++) { //如果变量<=4,按照行进行循环,输出行
echo "<tr>"; ?>
<?php if($i==1){
$query="select * from tb_upfile where id order by id desc";
$lttb=mysql_query($query); }
$j=1; //设置变量$j=1
while ($myrow=mysql_fetch_array($lttb)){ //进行while循环输出
if ($j<=2) { //每行的表情图个数<=8,输出如下内容
if ($c==0){ $c="checked"; }
?>
<td width="550" align="center" valign="middle" bgcolor="#FFFFFF">
<table width="265" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bgcolor="#FDB62A">
<tr>
<td width="74" height="25" align="center" bgcolor="#FFFFFF"><span class="STYLE2">图片名称:</span></td>
<td width="183" bgcolor="#FFFFFF" class="STYLE2"><?php echo $myrow[file_name];?></td>
</tr>
<tr>
<td colspan="2" align="center" bgcolor="#FFFFFF"><img src="image_1.php?recid=<?php echo $myrow[id];?>" border="0"></td>
</tr>
<tr>
<td height="25" align="center" bgcolor="#FFFFFF" class="STYLE2">上传时间:</td>
<td bgcolor="#FFFFFF" class="STYLE2"><?php echo $myrow[dates];?></td>
</tr>
</table>
</td>
<?php }
$c=1;
++$j; //当表情图的个数增加时
if($j==3){ break; } //当表情图的个数等于9时,跳转到下一行重新进行循环
}
echo "</tr>";
}
?>
请老师给指导一下,谢谢!