这是我的.php文件
<?php
ini_set('mysql.connect_timeout',300);
ini_set('default_socket_timeout',300);
?>
<html>
<body>
<form method="post" enctype="multipart/form-data">
<br/>
<input type="file" name="image" />
<br/><br/>
<input type="submit" name="sumit" value="Upload" />
</form>
<?php
if(isset($_POST['sumit']))
{
if(getimagesize($_FILES['image']['tmp_name']) == FALSE)
{
echo "Please select an image.";
}
else
{
$image= addslashes($_FILES['image']['tmp_name']);
$image= file_get_contents($image);
$image= base64_encode($image);
saveimage($image);
}
}
displayimage();
function saveimage($image)
{
$con=mysql_connect("localhost","root","");
mysql_select_db("food",$con);
$qry="insert into info (image) values ('$image')";
$result=mysql_query($qry,$con);
if($result)
{
echo "<br/>Image uploaded.";
}
else
{
echo "<br/>Image not uploaded.";
}
}
function displayimage()
{
$con=mysql_connect("localhost","root","");
mysql_select_db("food",$con);
$qry="select image from info";
$result=mysql_query($qry,$con);
while($row = mysql_fetch_assoc($result))
{
echo '<img height="300" width="300" src="data:image;base64,'.$row[2].' "> ';
}
mysql_close($con);
}
?>
</body>
</html>
为什么我添加时无法显示图片。当我点击上传但是我无法显示图片时,图片已存储在数据库中。那里的显示代码有什么问题吗?谢谢
答案 0 :(得分:1)
在您当前的代码更改中
将$row[2]
替换为$row['image']
并尝试将您的代码转换为评论建议。
答案 1 :(得分:0)
见这一行,
while($row = mysql_fetch_assoc($result)){ ...
您将行作为关联数组而不是数字数组,因此$row[2]
无法正常工作。使用$row['image']
元素中的<img>
来显示图片。
所以你的代码应该是这样的:
while($row = mysql_fetch_assoc($result)){
echo '<img height="300" width="300" src="data:image;base64,'. $row['image'] . '">';
}
<强>图片的标题说明:强>
mysql_*
函数,从PHP 5.5开始不推荐使用它们,并且在PHP 7.0中完全删除它们。请改用mysqli
或pdo
。 And this is why you shouldn't use mysql_*
functions。