来自mysql的php显示图像blob

mf98qq94  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(324)

这个问题在这里已经有答案了

如何从mysql数据库中检索图像并在html标签中显示(5个答案)
四年前关门了。
我正在尝试显示存储在数据库blob列中的图像;
我使用select命令从数据库中获取数据,对数据执行不转换,并使用以下命令显示数据(从只输出以下内容的脚本中):

header("Content-Type: image/jpeg");
echo $image;

请注意,chrome显示的内容大小是图像的正确大小以及正确的mime类型( image/jpeg ). 在头文件之前没有任何东西回音,我检查了数据库中的blob是否正确。在前面或后面也没有尾随空格 <?php ?> 标签。
chrome/ie显示图像图标,但不显示图像本身。有什么想法吗?
编辑:从数据库中获取图像,如下所示:

$sql = "SELECT * FROM products WHERE id = $id";
$sth = $db->query($sql);
$row = $sth->fetch();
$image = $row['image'];

var\u dump($image)提供:

string 'ÿØÿà�JFIF��x�x��ÿá�ZExif��MM�*�����������J��������Q�������Q������tQ������t�����† ��±ÿÛ�C�       

ÿÛ�CÿÀ�_"�ÿÄ����������� 
ÿÄ�µ���}�!1AQa"q2‘¡#B±ÁRÑð$3br‚ 
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³    ´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ��������'... (length=60766)
ergxz8rk

ergxz8rk1#

因为我必须在blob字段/列中存储各种类型的内容,所以我应该像这样更新代码:

echo "data: $mime" $result['$data']";

哪里: mime 可以是任何类型的图像,文本,word文档,文本文档,pdf文档等。。。内容数据类型为 blob 在数据库中。

bxgwgixi

bxgwgixi2#

这是我用来显示blob中的图像的:

echo '<img src="data:image/jpeg;base64,'.base64_encode($image->load()) .'" />';
2w3rbyxf

2w3rbyxf3#

像这样试试。
插入数据库

$db = mysqli_connect("localhost","root","","DbName"); //keep your db name
$image = addslashes(file_get_contents($_FILES['images']['tmp_name']));
//you keep your column name setting for insertion. I keep image type Blob.
$query = "INSERT INTO products (id,image) VALUES('','$image')";  
$qry = mysqli_query($db, $query);

用于从blob访问图像

$db = mysqli_connect("localhost","root","","DbName"); //keep your db name
$sql = "SELECT * FROM products WHERE id = $id";
$sth = $db->query($sql);
$result=mysqli_fetch_array($sth);
echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image'] ).'"/>';

希望对你有帮助。
谢谢。

相关问题