PHP不打印MySQL镜像

时间:2016-04-06 15:27:48

标签: php mysql image

下午好,y'所有!!

我有一个数据库,其中包含一个包含4列的行,名为" ID"," login"," pass"和"图像"(BLOB)。我有一个用户身份验证等系统,我想实现用户注册的图像显示在顶部栏中。到目前为止,一切都运行良好,唯一的问题是数据库图像是这样打印的:

ÿØÿàJFIF``ÿÛC  %# , #&')*)-0-(0%()(ÿÛC  (((((((((((((((((((((((((((((((((((((((((((((((((((
ÿÀ€€"ÿÄ    ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚  %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’
“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ  ÿĵw!1AQaq"2B‘¡±Á   #3R
ðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹º

详细信息:当我在 NOTEPAD 中打开选择到数据库的图像时,它与上面显示的相同。

IMAGE.PHP

include "dbconnection.php";

$defaultpath = "img/avatar.png";

$sql = "SELECT * FROM `bg_users`";
$query = mysql_query($sql);
$result = mysql_fetch_assoc($query);

if (!isset($_SESSION)) {

$_SESSION['UserImage'] = $result['image'];

  print $_SESSION['UserImage'];
}
else {

  echo "src='img/avatar.png'";
}

?>

同样,PHP和MySQL之间的交互完全正常。问题是PHP没有将文件打印为图像。我无法生成header("Content-type: image/png");,因为我想要包含 image.php 的网页已经有了一个标头参数。

有人可以帮助我吗?我会很高兴

谢谢!

1 个答案:

答案 0 :(得分:1)

首先,我不会将图像保存为数据库中的blob,更容易将它们存储在文件夹中并保存数据库中的路径。

如果您想按照自己的方式行事,请执行以下操作:

echo '<img src="data:image/png;base64,'.base64_encode( $result['image'] ).'"/>';

这是一个非常糟糕的做法,可能会减慢页面加载的速度。我建议您重新评估数据库结构并直接存储图像,只需将路径保存在数据库中