【问题标题】:PHP: Image retrieval from MySQL Blob directly into <img> tagPHP:从 MySQL Blob 直接检索图像到 <img> 标签
【发布时间】:2011-11-28 06:17:07
【问题描述】:

我已将图像存储到(中)BLOB 字段中,并希望检索嵌入在我的 PHP 生成的网页中的图像。

当我测试使用检索存储的图像时

header('Content-type: ' . $image['mime_type']);
echo $image['file_data'];

一切看起来都很好。

但是,我还没有找到一种方法可以将图像清晰地检索到我的文档中间。例如,使用

$image  = $row['file_data'];
echo '<img src="data:image/jpeg;base64,'.$image['file_data'].'" alt="photo"><br>';

...或...

$im = imageCreateFromString($image);

我只是在屏幕上看到一堆十六进制垃圾。

我最初使用以下方法存储图像:

ob_start();
imagejpeg($resizedImage, null, 100);
$content = ob_get_contents();
ob_end_clean();
$sql = sprintf(
 "insert into images (filename, mime_type, file_size, file_data, event_id)
 values ('%s', '%s', %d, '%s',%d)",
 mysql_real_escape_string($fileName),
 mysql_real_escape_string($mimeType),
 $imageSize,
 mysql_real_escape_string($content),
 $eventID 
);
$result = $cn->query($sql);

有没有人有工作代码 sn-p 可以在 PHP 输出中成功显示存储的 .jpg 中间文件?

【问题讨论】:

  • 可以做到,但是……你真的不想这样做,这是一个非常糟糕的做法。
  • user1068351:请转到您的 SO 个人资料并选择一个昵称。那些默认的 user1234567 刻痕不是很好阅读。 @Fosco:取决于您使用它。但我同意,对于“照片”来说,它不好的。

标签: php mysql image blob


【解决方案1】:
echo '<img src="data:image/jpeg;base64,'.base64_encode($image['file_data']).'" alt="photo"><br>';

但是,请记住旧的 IE 版本不支持这种内嵌图像!除此之外,浏览器不能缓存这样的图像,除非连同其包含的 HTML 页面。

【讨论】:

    【解决方案2】:

    您应该创建某种“图像服务器”。你已经接近那个了。 例如,创建类似 image.php 的东西,它将获取图像名称并即时生成它。 因此,例如,假设您想要获取 somePic.jpg 图像。你可以通过:

    image.php?name=somePic.jpg

    <?php
    header('Content-type: ' . $image['mime_type']);
    echo $image['file_data'];
    ?>
    

    你的标签:

    <img src='image.php?name=somePic.jpg' />
    

    或更笼统地说:

    echo "<img src='image.php?name={$image['filename']}' />"
    

    【讨论】:

      【解决方案3】:

      为什么不直接调用你的测试页面image.php,然后在渲染页面上从浏览器调用它:

      <img src="image.php?imageid=123" alt="photo" /> 
      

      【讨论】:

        猜你喜欢
        • 2016-02-07
        • 1970-01-01
        • 1970-01-01
        • 2013-09-29
        • 1970-01-01
        • 1970-01-01
        • 2017-08-16
        • 2015-05-31
        • 2018-06-08
        相关资源
        最近更新 更多