显示存储在数据库中的图像


display image stored in database

我的sql数据库中有base64编码为blob的图像。

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

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

但是,我想创建一个视图,该视图将直接显示照片或通过访问 php 文件并在列中返回图片来显示照片。 我尝试过使用类似的东西:在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层。就目前而言,您的数据 uri 版本会阻止浏览器缓存该图像,并且您将迫使用户每次都下载该图像,从而消耗他们(和您的)带宽。