如何在php页面上显示存储在数据库中的图像?

时间:2013-09-13 13:30:00

标签: php mysql

我无法在我的php页面上将检索到的blob图像文件显示为图像。显示从数据库中检索的数据的代码部分如下:

echo '<h4>'.$yaz["Header"].'</h4><br>'.$yaz["Picture"].'<p class="text">'.$yaz["Description"].'</p><br>';

当我编写此代码时,我得到标题和描述,并且不会发生任何问题。但图片来了

����JFIFHH��:>ExifMM*����(2�;���i؈%PdCanonCanon EOS 500DHH2012:09:05 10:23:46 

如何在php页面上显示我的图片?

3 个答案:

答案 0 :(得分:3)

这很简单。
只是不要在blob字段中的数据库中存储图像。相反,将图像本身存储在文件系统上,而在数据库存储中仅存储文件的名称。这样你的代码就可以了。

echo '<h4>'.$yaz["Header"].'</h4><br><img src='.$yaz["Picture"].'><p class="text">'.$yaz["Description"].'</p><br>';

答案 1 :(得分:0)

不要将图像存储在数据库中。将其存储在您的文件系统中。存储文件在数据库中的名称和位置。因为

1.如果数据库已损坏,则无法检索。

2.与其他选项相比,从db中检索图像文件的速度很慢。

答案 2 :(得分:0)

试试这样:

$image = $row['image']; $image_type= $row['image_type']; $size = $row['image_size']; $ext = explode('/', $image_type); $name = $id . '.' . $ext[1];

header("Content-type: $image_type"); header("Content-length: $size"); header("Content-Disposition: attachment; filename=$name");

print $image;
exit;