显示 MySQL 数据库中的 BLOB 图像
在寻求显示 MySQL 数据库中的 BLOB 图像时,您遇到了以下问题: PHP 页面将图像显示为二进制数据而不是实际图像。让我们深入研究解决此问题的解决方案。
您看到的错误源于缺少正确的“Content-Type”标头声明。该标头告知浏览器响应的预期数据类型。在您的情况下,您需要指定响应是“image/jpeg”类型的图像。
内联 Base64 编码(推荐用于有限图像)
对于少量图像,您可以使用内联 Base64 编码。实现方法如下:
echo '<dt><strong>Technician Image:</strong></dt><dd>' . '<img src="data:image/jpeg;base64,' . base64_encode($row2['image']) . '" width="290" height="290">' . '</dd>';
创建图像 PHP 文件(推荐用于大量图像)
如果您有大量图像要显示,更好的方法是创建一个单独的 PHP 文件来处理图像检索和输出。您的 HTML 和 PHP 文件将如下所示:
HTML:
<img src="image.php?id=<?php echo $image_id; ?>" />
PHP:
<?php $id = (isset($_GET['id']) && is_numeric($_GET['id'])) ? intval($_GET['id']) : 0; $image = getImageFromDatabase($id); // your code to fetch the image header('Content-Type: image/jpeg'); echo $image; ?>
通过正确指定“Content-Type”标头,您将指示浏览器将数据呈现为图像,从而解决您的显示问题问题。
以上是如何在 PHP 中显示 MySQL 数据库中的 BLOB 图像?的详细内容。更多信息请关注PHP中文网其他相关文章!