【问题标题】:BLOB image not renderingBLOB 图像未呈现
【发布时间】:2013-05-14 18:11:20
【问题描述】:

您好,我在 mysql 中保存了 BLOB 格式的 jpg 图像。我在使用 PHP 将图像渲染到我的视图页面时遇到问题。当我使用

header('Content-type: image/jpeg')

它在我的页面上显示一条消息,因为图像无法显示,因为它包含错误。当我在没有标题功能的情况下打印时,会显示一些垃圾文本。这是我的代码:

function loadImage(){
//connect to db
mysql_select_db('aaa',$conn);
$query = mysql_query("SELECT * FROM asdf WHERE UserName='".$userName.");
$row = mysql_fetch_array($query);
$content = $row['ProfileImage'];
header('Content-type: image/jpeg');
echo $content;
}

这里是html代码:

<img src='loadImage.php?func=loadImage' />

如果显示图像,那么我打算使用

loadImage.php?func=loadImage?id=number'

但是图像本身没有显示。非常感谢任何帮助。

【问题讨论】:

标签: php mysql blob


【解决方案1】:

希望这对某人有所帮助...

假设图像已经以 blob 格式上传,那么您可以使用它

首先使用查询获取要显示其图像的记录并将 blob 图像存储在 $blobimg 中

然后用它来转换blob文件

echo '<img src ="data:image/jpeg;base64,'.base64_encode($blobimg).'"/>';

【讨论】:

    【解决方案2】:

    为什么要将图像保存在数据库中。

    最佳做法是将您的图片保存在某个文件夹中,并为您的图片指定一个唯一的名称。然后将图像名称保存到数据库中。

    在显示图像时使用

    <img src='path/to/image/image_name' />
    

    【讨论】:

    • 我不确定这种方法。知道在哪里可以找到好的教程吗?
    • 要先上传图片再展示。或者你已经有一张图片,只是想展示它。
    • 请查看此链接。 link
    • 如果你只是简单地回答问题而不是告诉他用不同的方式来做会更有帮助。我找到这个页面是因为我想使用 blob,而不是重写我继承的所有代码。
    【解决方案3】:

    通过注释掉 header('Content-type: image/jpeg'); 来检查页面上是否出现任何其他错误;

    如果您的脚本设置为输出错误,则图像将无法正确呈现

    【讨论】:

    • 如果我注释掉标头函数,则不会显示任何内容。我也用firebug检查了firefox,没有响应文本。但是,如果我回显 $row,$content 它会打印为“数组和一些垃圾文本...”。我使用 PHP Designer 来编辑 php。它也不显示任何错误。
    猜你喜欢
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多