【问题标题】:BLOB data as src attribute of an image tag?BLOB 数据作为图像标签的 src 属性?
【发布时间】:2011-01-02 02:07:13
【问题描述】:

我继承了一个站点,该站点使用不太理想的方式处理图像,它们已作为 BLOB 存储在数据库中。图片标签包括

<img src='image.php?id=22' />

但没有显示图像。当我访问 image.php?id=22 页面时,BLOB 数据只是转储到屏幕上(所有有趣的字符)并且没有显示图像。我不确定这是否与发送到浏览器的数据的内容类型有关?有人告诉我“这在几周前之前还可以正常工作”。

我的问题是,是否可以将 BLOB 数据显示为图像标签的 src 属性?

编辑:根据要求,这里是 image.php 的内容。希望这有一些用处。

<?
error_reporting(0);
include("../inc/connect.inc");
include("../inc/common.inc");
include("item.class");
$item = new Item($id);
echo $item->Picture;
?>

EDIT2:如果我添加内容类型行,页面只会打印出图像的路径:http://www.site.com/dir/image.php?id=49。尝试了几种内容类型,没有区别。奇怪!

【问题讨论】:

  • 我不认为这种图像存储方法有什么问题。

标签: blob


【解决方案1】:

好吧,如果您直接链接到图像,则会发回完全相同的数据,“BLOB”与网络服务器读取并发送到浏览器的数据之间没有区别。

所以,你在内容类型的想法上走在了正确的轨道上……萤火虫说内容类型是什么?您可能想发布image.php 的代码。

编辑:

所以我们开始...只需将您的脚本修改为如下所示:

<?
header( 'Content-Type: image/png' );
error_reporting(0);
include("../inc/connect.inc");
include("../inc/common.inc");
include("item.class");
$item = new Item($id);
echo $item->Picture;
?>

用你的图片格式替换image/png

【讨论】:

  • Firebug 说内容类型是 Content-Type text/html 所以这一定是问题所在。我认为需要通过 .htaccess 进行某种修改?
  • 不应该,发你的image.php
【解决方案2】:

您应该在数据库中拥有一个内容类型字段以及 BLOB 数据,除非 BLOB 数据是一种固定类型(例如,image/png),您可以在 image.php 脚本中对其进行硬编码。您需要在 Content-type: set 中包含一个新标头。

header('Content-type: image/png');

但是你必须找出图像类型是什么——我猜会反复试验,它肯定是 image/jpeg、image/png 或 image/gif 之一?

【讨论】:

    猜你喜欢
    • 2013-06-03
    • 2014-02-15
    • 2016-09-11
    • 1970-01-01
    • 2017-07-05
    • 2016-04-20
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多