2013-03-06 100 views
-1

我试图显示存储在我的数据库中的图像。我知道将图像存储在数据库中并不是最佳实践,但为此我需要它。我的问题是,当我去显示图像,我得到的是一个加密代码,我猜是代码中的图像,但不是在视觉上我想要的。当我使用标题标记识别图像时,我所得到的只是一个缩略图,表示它没有正确读取它。任何帮助都会很棒。使用sql将客户端的图像发送到数据库

以下是我正在使用的代码。我一直在使用它无论是在PHP或HTML显示尝试在两种方式,但无法显示图像:

while($row = mysql_fetch_array($result)) 
{ 
$Long = $row['Long']; 
$Lat = $row['Lat']; 
$img = $row['file']; 
echo "<b><center>Database Output</b><br><br>"; 

echo "<td>" .$row['file']."</td>"; 
echo "----"; 
echo "<td>" .$row['Lat']."</td></center>"; 
//echo "<td>" .$row['file']."</td>"; 
} 
?> 
    <div id="map"> 
<img src="<? $img?>" alt=""> 

感谢任何输入

+0

你如何保存你的图像中的数据库?什么是$行['文件']'? – Hast 2013-03-06 16:15:47

+0

目前我只是手动将它保存为一个blob,$ row ['file']是它保存在 – 2013-03-06 16:17:57

回答

2

要么你嵌入图像到HTML作为数据页URI

<img src="data:image/jpeg;base64,<?php echo base64_encode($img) ?>" /> 

这对“大”的文件令人发指NASTILY可怕的 - 你让不可能的浏览器缓存图像,迫使用户下载base64编码数据,他们加载页面EVERY时间。

,或者你有一个子脚本就可以提供实际的图像,并有更多的东西一样:

<img src="getimage.jpg?id=XXX"> 

<?php 

$data = get_image_from_db($_GET['id']); 
header('Content-type: image/jpeg'); 
echo $data; 
+1

中的列“可恶的NASTILY可怕的”,不幸的是,这可能是一个轻描淡写的哈哈。第二个建议FTW。 – 2013-03-06 16:20:35

+0

刚刚尝试过你的第一个解决方案,它的功能完美,我知道它可能不是你说的最好的解决方案,但它的工作原理就是我所需要的,所以非常感谢你 – 2013-03-06 16:21:13

相关问题