php - 不显示来自 mysql db 的 php 中的 blob 图像

标签 php mysql image blob

有人可以帮我处理这段代码吗?问题是它不显示图像,但显示了这个奇怪的东西: OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOÿÀx !ÿä¢ }!1A Qa"q2'¡#B±ÁRÑð$3br‚%&'()*456789:CDEFGHIJSTUVW

这是我的代码:

 <?php
//mysql connect database
mysql_connect('localhost','root','password') or die(mysql_error());
mysql_select_db('database') or die(mysql_error());
$res=mysql_query('select * from img');
while($row=mysql_fetch_array($res))
{
echo "<div id='image'>";
echo "<p/>";?> <img src="<?php echo $row['image'];?>" height='300px' width='468px'>";<?php
echo "<p/>"; echo $row['name'];
echo "</div>"; 
}
?>

最佳答案

<img>需要一个指向图像文件所在位置的 URL。您试图将图像的原始二进制垃圾转储到该图像标签中。那垃圾自然会含有">其中的字符,并“关闭”您的 img 标签,让其余的垃圾被视为纯文本。

您必须通过单独的脚本提供图像,例如

html:

<img src="pic.php?id=foo">

php:

header('Content-type: image/jpeg');
echo get_blob_from_database($_GET['id']);

或者将图像正确嵌入到 html 中:

<img src="data:image/jpg;base64,<?php echo base64_encode($row['image']); ?>">

这些都不是特别好的解决方案。将图像直接存储在数据库中几乎从来都不是一个好主意。

关于php - 不显示来自 mysql db 的 php 中的 blob 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25556057/

相关文章:

image - 如何检测区域上方和下方的点?

php - 在 Apache 服务器中托管的 Laravel 框架中开发的 API 在从 Android 和 iOS 移动应用程序请求时没有得到任何响应

php - 正则表达式将文本替换为标签 html 以字符开头

mysql - 查找时间值已被使用并将其乘以 SQL 中跨表的数量

php - Mysqli 查询在服务器中不工作并且在本地运行正常

mysql - 重复键名 'unique_id'

python - 如何在图像文件中保存浮点像素值

ios - 如何在Swift中同时添加Button+ScrollView?

php - Ratchet 发送不适用于 sleep 功能

php - 如何使用php在mysql中获取最大数