PHP don';t打印MySQL映像


PHP don't print MySQL image

大家下午好!!

我有一个数据库,其中有一个表,其中包含一行,有4列,分别称为"ID"、"login"、"pass"answers"image"(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的页面已经有一个header参数。

有人能帮我吗?我会很高兴

谢谢!

首先,我不会将图像保存为数据库中的blob,只需将它们存储在文件夹中并将其路径保存在数据库中即可。

如果你想按自己的方式进行,请执行以下操作:

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

不过,这是一种非常糟糕的做法,可能会大大降低页面加载速度。我建议您重新评估数据库结构,直接存储图像,然后将路径保存在数据库