我正在尝试从MySQL表的blob字段中显示图像。看起来我在以下行中有一些错误。一旦我把“header(”Content-type:image / jpeg“)”搞砸了,而不是显示网页,就会显示页面的所有源代码。
请让我知道如何纠正。
<div class="image" align="left">
<a href="<?php header("Content-type: image/jpeg"); echo $rec['image']; ?>">
<img src="<?php echo $rec['image']; ?>" width="150" border="0"/>
</a>
</div><!-- image -->
答案 0 :(得分:0)
您通常不会将实际图像内容放在图像标记的src=
属性中。而是指向图像文件的URL。
(有include the image source directly in the HTML的方法,但它不能与所有浏览器一致,您仍然无法使<a>
链接正常工作。
相反,最好的方法是创建一个单独的PHP文件来提供图像。
您的HTML:
<div class="image" align="left">
<a href="myimage.php?key=<?php echo($key) ?>"><img src="myimage.php?key=<?php echo($key) ?>" width="150" border="0"/></a>
</div><!-- image -->
myimage.php:
<?php
header("Content-type: image/jpeg");
$key = $_GET['key'];
// todo: load image for $key from database
echo $rec['image'];
答案 1 :(得分:0)
我已经做了类似的事情,就像从我的数据库中检索blob一样,你会发现它很有用,这里是代码示例..看看它是否适合你的需求,如果你需要帮助,请告诉我。< / p>
while ($row = mysql_fetch_array($hc_query2)) {
$title = $row['title'];
$text = $row['text'];
$image = $row ['image'];
$output ='<div class="HCInstance"><img src="data:image/jpeg;base64,' . base64_encode($image) . '" alt="High Council" width="100px" height="100px"/>
<div class="HCHeader"><h2>'.$title.'</h2></div><br/><div class="HCDetails"><p>'.$text.'</p></div></div>';
echo $output;
}
答案 2 :(得分:0)
您正在尝试将图像数据内嵌到内容中。唯一可行的方法是通过数据URI data URI。类似的东西:
<img src="data:image/jpeg;base64,<?= base64_encode($rec['image']) ?>" width="150" border="0" />
但是,您可能想要做的是将其放入单独的脚本中。所以你的HTML将是:
<a href="showimage.php?id=XXX"><img src="showimage.php?id=XXX" width="150" border="0" /></a>
你的showimage.php脚本将是:
<?php
// Get $rec from database based on the $_GET['id']
header('Content-Type: image/jpeg');
echo $rec['image'];
?>