【发布时间】:2013-12-31 15:32:30
【问题描述】:
我正在尝试显示存储在数据库的 BLOB 列中的图像;
我使用 SELECT 从数据库中获取数据,不对数据执行任何转换,并使用以下内容显示它(来自唯一输出如下的脚本):
header("Content-Type: image/jpeg");
echo $image;
请注意,chrome 将内容大小显示为图像的正确大小以及正确的 mime 类型 (image/jpeg)。在标题之前没有任何回应,我检查了数据库中的 blob 是否正确。 <?php ?> 标签前后也没有尾随空格。
chrome/IE 显示图像图标,但不显示图像本身。有什么想法吗?
编辑:图像是从数据库中获取的:
$sql = "SELECT * FROM products WHERE id = $id";
$sth = $db->query($sql);
$row = $sth->fetch();
$image = $row['image'];
var_dump($image) 给出:
string 'ÿØÿà�JFIF��x�x��ÿá�ZExif��MM�*�����������J��������Q�������Q������tQ������t�����† ��±ÿÛ�C�
ÿÛ�CÿÀ�_"�ÿÄ�����������
ÿÄ�µ���}�!1AQa"q2‘¡#B±ÁRÑð$3br‚
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³ ´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ��������'... (length=60766)
【问题讨论】:
-
请发布
$image的组成部分(即查询等) -
@user2732663 你试过我下面的答案了吗?
-
尝试将
$image保存到二进制文件并打开,可能是DB中的数据损坏了? -
你试过在浏览器中查看源代码吗?有时 PHP 错误或通知会导致输出混乱。
-
您没有向我们展示插入图像的代码 - 这与检索图像的代码一样重要。