BLOB数据作为图像标签的SRC属性

时间:2013-06-07 13:18:43

标签: php html mysql blob

我尝试将MySQL DB中存储的图像(blob数据)链接到PHP,但我只实现了整页的字符。这就是我所做的:

$query = "SELECT image FROM uploads WHERE id = {$id}";
$image_array = mysql_query($query, $connection);
$row = mysql_fetch_array($image_array);
$image = $row['image'];

echo $image;
// echo base64_decode($content);

显示原始数据的存储方式。我想将它链接到HTML标签或至少在页面上显示它,在那里我显示了很多其他东西 标题('Content-type:image / png'); 对我来说不是解决方案。

有什么建议吗?

3 个答案:

答案 0 :(得分:8)

要正确显示图片,您只需在Content-type: image/png

之前添加一个标头echo
header("Content-type: image/png");
echo (base64_decode($row['image']));

如果您想要放置在图片代码中,只需使用此代码

即可
echo '<img src="data:image/png;base64,' . $row['image'] . '" />'; 

答案 1 :(得分:1)

您需要提供正确的标题,否则页面不会知道您发送的内容。

// define results into variables 
$name=mysql_result($result,0,"file_name"); 
$size=mysql_result($result,0,"file_size"); 
$type=mysql_result($result,0,"file_type"); 
$content=mysql_result($result,0,"file_stream"); 

// give our picture the proper headers...otherwise our page will be confused 
header("Content-Disposition: attachment; filename=$name"); 
header("Content-length: $size"); 
header("Content-type: $type"); 
echo $content; 

答案 2 :(得分:0)

您应该使用名为“内联图片”的内容。使用此代码在页面上显示图像,假设$ image变量包含base64编码数据:

<img src="data:image/png;base64,<?php echo $image; ?>" alt="Larry" />

来源:https://en.wikipedia.org/wiki/Data_URI_scheme