微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正确的标题php mysql blob显示图像

我试图在我的PHP页面显示来自MysqL blob的图像(我知道它不是最佳实践),然后将其带入我的iOS应用程序.

我在设置页面标题时遇到了麻烦,我认为需要将其设置为图像.

因此,这显示图像,但我认为页面标题不正确:

    //header("Content-type: image/png");
echo '<img src="data:image/png;base64,' . base64_encode( $row['image1'] ) . '" />';

但是,这不显示我的图像:

    header("Content-type: image/png");
echo '<img src="data:image/png;base64,' . base64_encode( $row['image1'] ) . '" />';

我想念什么?我相信当标题设置为image / png时应该显示图像,但是我收到一个错误,由于错误而无法显示.

谢谢!

解决方法:

header("Content-type: image/png");

这告诉您的浏览器您即将传递原始的二进制数据,该数据是PNG文件.因此,此后的任何输出都必须是二进制PNG.然后,您不能放置HTML并期望它能正常工作

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

之所以有效,是因为您正在对图像进行base64编码(将二进制文件转换为文本),然后将其输出到浏览器,然后告诉浏览器将其解释为base64.

如果要输出原始二进制数据,则必须重新排列顺序.这是您的HTML

<img src="image.PHP" />

现在,您会注意到src指向一个PHP文件.那是因为我们要让那个PHP文件返回一个图像.这是image.PHP的样子

//Your query here
$row = MysqLi_fetch_assoc($result);
header("Content-type: image/png");
echo $row['image1'];

这是可行的,因为浏览器将调用PHP文件,并期待一个图像.标头告诉浏览器这是一个PNG文件,您现在可以转储二进制PNG数据.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐