不在PHP中显示blob图像从MySQL db

问题描述:

有人可以帮我使用此代码吗?问题是,它不显示图像,但这种怪异的东西:OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOÿÀx !ÿÄ¢ }!1AQa"q2‘¡#B±ÁRÑð$3br‚%&'()*456789:CDEFGHIJSTUVW不在PHP中显示blob图像从MySQL db

这里是我的代码:

<?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>"; 
} 
?> 
+0

[请参阅此答案](http://stackoverflow.com/a/6273415/1206267)。 blob是一个二进制文件类型。 – Ohgodwhy 2014-08-28 18:59:08

+0

[Php:将blob转换为图像文件]可能的副本(http://stackoverflow.com/questions/6106470/php-convert-a-blob-into-an-image-file) – 2014-08-28 19:01:20

<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']); ?>"> 

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

+0

什么是一个好主意存储图像? – smovie9 2014-08-29 06:48:10

+0

thnx它workt! – smovie9 2014-08-29 15:43:02

这是更好地保存你的图像文件夹,而不是保存在BLOB格式

可以保存在数据库表中的文件名和保存图像文件夹中

当你调用的文件名

,可以结合它与src从并获取内容