我写下以下代码来显示数据库中的图像
<?php
mysql_connect("localhost","root","");
mysql_select_db("test");
$qry = "select id from image";
$res = mysql_query($qry) or die(mysql_error());
while($row = mysql_fetch_array($res))
{
echo "<img src=image.php?id='$row[0]'>";
}
?>
Image.php
<?php
$query = mysql_query("SELECT img FROM images WHERE id = ".$_GET['id']);
$row = mysql_fetch_array($query);
if($type=="pjpeg")
$type="jpeg";
header("Content-type:$type");
echo $row['img'];
?>
但这不起作用。它显示空白图像图标。
答案 0 :(得分:7)
您也可以use base64 encoding构建图片。像
<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAWgBaAAD/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAAB..." />
UPDATE,base64编码示例
你可以轻松地做到这一点:
<?php
$imageId = intval($_GET["id"]);
$query = mysql_query("SELECT img FROM images WHERE id = ". $imageId);
$row = mysql_fetch_array($query);
$mime = null;
// place $type init. here
if ($type=="pjpeg") // <<< where do you get $type btw?
$mime = "image/jpeg";
$b64Src = "data:".$mime.";base64," . base64_encode($row["img"]);
echo '<img src="'.$b64Src.'" alt="" />';
?>
答案 1 :(得分:1)
jpeg
不是有效的内容类型,应该是image/jpeg
答案 2 :(得分:0)
如上所述
+确保将replace = true
参数传递给标题函数。
header( 'Content-Type: image/jpeg', true );