下午好,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 的网页已经有了一个标头参数。
有人可以帮助我吗?我会很高兴
谢谢!
答案 0 :(得分:1)
首先,我不会将图像保存为数据库中的blob,更容易将它们存储在文件夹中并保存数据库中的路径。
如果您想按照自己的方式行事,请执行以下操作:
echo '<img src="data:image/png;base64,'.base64_encode( $result['image'] ).'"/>';
这是一个非常糟糕的做法,可能会减慢页面加载的速度。我建议您重新评估数据库结构并直接存储图像,只需将路径保存在数据库中