php - 显示数据库中存储的图像

标签 php mysql image tags src

我的 SQL 数据库中有经过 Base64 编码为 Blob 的图像。

使用 php 脚本,我可以在浏览器中正确显示图片。

echo '<img src="data:image/jpeg;base64,' . $fetch_row['object']. '" />';

但是,我想创建一个 View 来直接显示照片或通过访问 php 文件并在列中返回图片来显示照片。我尝试过使用类似的东西:in mysql

concat('<img src="data:image/jpeg;base64,',`object`,'" />')
or concat('<img src=/image.php? blah blah blah)

有什么想法吗?

最佳答案

<?php

header('Content-type: image/jpeg');
echo base64_decode($fetch_row['object']);

您的问题也准确地说明了为什么将图像存储在数据库中是一个坏主意。如果图像只是服务器驱动器上的一个文件,您只需

<img src="/path/to/file.jpg" />

并且根本不必涉及 DB/PHP 层。就目前而言,您的 data-uri 版本完全阻止浏览器缓存该图像,并且您将迫使用户每次都下载该图像,从而消耗他们(和您的)带宽。

关于php - 显示数据库中存储的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18664328/

相关文章:

php - 如何对未知值使用 preg_replace_callback?

python - 是否可以使用 pymysql 插入字典?

Java Swing,所有图像均出现像素化

javascript - 使用 Javascript 减少 base64 图像内存大小

javascript - 在 foreach 语句的数组中包含空值

php - 在 Laravel homestead 中启用 MSSQL 支持的正确方法是什么?

php - 正则表达式使用 YYYY-MM-DD 格式验证 PHP 中的日期

c# - 实体类型 ApplicationUser 不是当前上下文模型的一部分,具有自定义用户存储的 DB First

sql - 是否可以执行按位分组功能?

ios - Xcode Assets 目录中的应用程序图标大小