无法在php中显示来自数据库的图像

时间:2014-10-09 04:53:40

标签: php mysql blob

我使用smarty,mysql,我只是想显示图像。 这是我得到的错误 -

  

资源解释为图像但使用MIME类型text / html传输

我的index.php文件

<img src="http://localhost/admin/image2.php?id={$editWine[0].id}" width="150" height="260" border="0" class="bottle-img" id="smallImageWineEdit" />

我的image2.php文件

$id=$_REQUEST['id'];        
$sql="SELECT * FROM table WHERE id=$id";        
$result=mysql_query($sql) or die(mysql_error());
while($row=@mysql_fetch_assoc($result))
{
   echo '<img src="data:image/jpeg;base64,'.base64_encode( $row['image_data'] ).'" width="150" height="150" /> &nbsp';  
   echo $row['image_data'];                     
}

while循环中的回显工作正常。

当我检查元素并在新标签中打开此img链接时,图像正在显示。而它没有显示在当前页面中。

1 个答案:

答案 0 :(得分:1)

问题是你再次从图像文件中传递html标签。您只需要输出具有适当图像内容类型的图像数据。

编辑image2.php,如

if($row=@mysql_fetch_assoc($result))
{
   header('Content-type: image/jpg');
   echo $row['image_data'];
   exit();                   
}

更新以下评论

执行上述更改并在浏览器中请求http://localhost/admin/image2.php?id=VALID_ID_HERE并检查其是否重新调整图像。然后你可以在index.php的src标签中使用它来显示它。如果在请求图像时出现错误,请确保在数据库中询问正确的图像ID,并使用您看到的错误消息更新问题。