【问题标题】:Broken image icon displays while trying to display a BLOB尝试显示 BLOB 时显示损坏的图像图标
【发布时间】:2013-08-04 15:20:43
【问题描述】:

好的,所以我的最终目标是将存储在数据库 (MySQL) 中的图像(或博客类型样式中的多个图像)显示为 blob。现在它显示一个损坏的图像图标 ()。这是我迄今为止尝试过的:

<?php
    $link = mysql_connect('HOST','USER','PASS!') or die("Could not connect to database");
    $dbsel= mysql_select_db('DATABASE', $link) or die("Couldn't select database.");

    $result = mysql_query("SELECT * FROM bmblog");

    while($row = mysql_fetch_assoc($result))
    {

        echo "<img src='php/imgView.php?imgId=".$row['media']."' />";

        echo "<center>" . "<font color='white'>" . "<FONT FACE='timesnewromans'>" . nl2br(htmlspecialchars($row['msg']));

        echo "<br>";
        echo "<br>";
    };

?>

还有

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

echo "<center>" . "<font color='white'>" . "<FONT FACE='timesnewromans'>" . nl2br(htmlspecialchars($row['msg']));

两者都显示相同的损坏图像图标。但是,我确实注意到,在没有尝试回显第二行(text)的情况下,我确实在损坏的图像图标周围得到了一个完整的边界,该图像的大小大约是图像的大小。这与第一种方法不同。 我已经搜索了几个小时,并找到了大量关于此的帖子,但没有一个似乎对我有用或有意义,我对 PHP 相当陌生,所以这可能是我缺少的一些简单的东西;无论哪种方式,提前感谢您的任何帮助,非常感谢!

【问题讨论】:

  • 您是否正在使用 Internet Explorer 进行测试?
  • imgView.php 中有什么代码?
  • 我尝试过:Opra、Chrome、Internet Explorer 和 Firefox;他们都有同样的问题:/
  • 无,不存在。我猜这是我的问题(我从另一个根本没有解释的答案中获取了该代码,只是代码)?
  • 看这里link

标签: php html mysql blob


【解决方案1】:

可能解决问题的方法是在您 print/echo 图像之前添加 header("Content-Type: image/jpeg");

同样奇怪的是,您包含的 base64 示例不起作用。当我查看提供的示例时,Also 部分的第一行 echo 以双引号 (") 开头并以单引号 (') 结尾。这可能会导致异常以及您无法正确测试 base64 的原因.

一定是:

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

您还可以添加字符集:data:image/jpeg;charset=utf-8;base64,

最后,我建议查看以下可能有帮助的示例

How to Base64 encode your images

【讨论】:

  • 这是我尝试的第一件事,它返回了这个错误消息标题已经由(index.php)发送
  • 我试过你的: echo "";它告诉我有一个单引号没有打开,但老实说我找不到。
猜你喜欢
  • 2018-05-05
  • 1970-01-01
  • 1970-01-01
  • 2010-12-14
  • 2013-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多