正确的标题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'] ) . '" />';
我错过了什么? 我相信图像应该显示时,标题设置为图像/ 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" />
现在你会注意到一个PHP文件的src
点。 这是因为我们要让这个PHP文件返回一个图像。 这是image.php
样子
//Your query here $row = mysqli_fetch_assoc($result); header("Content-type: image/png"); echo $row['image1'];
这是有效的,因为浏览器将调用PHP文件,期待一个图像。 header
告诉浏览器这是一个PNG文件,你现在可以转储你的二进制PNG数据。