处理 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中文网其他相关文章!