在PHP中将SQL IMAGE类型显示为图像的问题

时间:2013-11-07 10:29:56

标签: php sql image

我有一个我正在连接的网络服务。我收到了有关我的查询的有效回复,其中一个是IMAGE类型。我没有直接控制数据库,他们并没有真正提供支持 - 所以我不能问他们具体细节。

我需要提供显示或下载此图片的链接。这个应该足够容易,但我现在已经反对这个了很长一段时间。

我有IMAGE数据。我把它放在一个名为$ evidence的var中。 如果我执行以下操作,则会在我使用过的所有浏览器中出现损坏/无法读取的图像(图像链接符号或类似文本损坏):

header("Content-type: image/jpeg");
echo $evidence;

因此,在调试时,我尝试使用一些copy / pasta'd代码显示内联图像:

echo '<img src="data:image/jpeg;base64,'.$evidence.'" />';

这可以正常工作......图像显示正确。

然而 - 我需要能够通过标题以正确的方式执行此操作,因为我需要做其他事情,例如能够强制下载。

每次我不得不做这样的事情时,基本的“标题,回声”方法一直都有效。几乎每个教程都看起来:这应该有效。它看起来很简单,大多数教程甚至都没有看到显示问题(只有数据提取问题)。

1 个答案:

答案 0 :(得分:1)

在考虑如何传递数据后,我注意到我在图像标记中使用的代码中存在“base64”部分。

我将回声修改为如下:

echo base64_decode($evidence);

这解决了它。

SO! 1个简单的“问题”来帮助其他人:确保在显示之前检查了数据类型。不要以为它是二进制的!