首页  >  文章  >  数据库  >  当存在其他输出时,为什么我的 MySQL BLOB 图像显示不正确?

当存在其他输出时,为什么我的 MySQL BLOB 图像显示不正确?

Susan Sarandon
Susan Sarandon原创
2024-11-24 05:34:13816浏览

Why Does My MySQL BLOB Image Display Incorrectly When Other Output Is Present?

处理 MySQL BLOB 列的图像显示和附加输出

在下面提供的代码示例中,图像存储为 BLOB 变量正在显示 MySQL 数据库。但是,如果在图像之前或之后输出任何附加文本,则会导致显示错误。

<?php

include("inc/library.php");

connectToDatabase();

$sql = "SELECT * FROM theBlogs WHERE ID = 1;";

$result = mysql_query($sql) or die(mysql_error());  
$row = mysql_fetch_array($result);

header("Content-type: image/jpeg");
echo $row['imageContent'];
$db->close();

?>

要解决这个问题,我们需要了解图像数据被视为二进制流。在图像之前或之后输出文本会破坏二进制数据并导致显示问题。

解决方案是将图像数据转换为 Base64 格式并将其嵌入 HTML 图像标签中。这种方法允许我们将图像数据与其他输出分开。

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

虽然这种方法有效,但它对于性能和缓存来说并不是最佳的。为了更有效地处理图像数据,请考虑使用适当的图像托管服务或数据库缓存机制。

以上是当存在其他输出时,为什么我的 MySQL BLOB 图像显示不正确?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn