PHP : 如何显示来自 blob 的图像
PHP : How to display image from blob
我这里有个小问题。
我尝试将图像转换为字符串 base64,之后我想将字符串保存到 MySQL 中的 blob。
因此,blob 可以显示在移动应用程序上。
这是我的代码:
$data = file_get_contents($_FILES["picture"]["tmp_name"]);
$image = base64_encode($data);
我已经成功将 blob 保存到 MySQL,但是我无法在网站中显示图像。
<td> <img src="<?php echo base64_decode($user->getPicture()); ?>"></td>
因为结果是:������� and many more
我错了吗?
请指正:)
图像的 src
属性必须指向 url。您不能将图像的原始二进制内容转储到那里并期望它可以工作。浏览器将获取原始二进制数据并尝试访问页面的原始服务器并请求该数据,就好像它是一个文件 url。即你在从 http://example.com/foo/bar/baz.php
:
加载的页面上有这个
<img src="blahblahblahblah" />
这将导致浏览器请求
http://example.com/foo/bar/blahblahblahblah
如果你想在页面中嵌入你的图片,那么你必须使用 Data URI:
<img src="data:image/jpeg;base64,<?php echo $base64_encoded_image ?>" />
我这里有个小问题。 我尝试将图像转换为字符串 base64,之后我想将字符串保存到 MySQL 中的 blob。 因此,blob 可以显示在移动应用程序上。
这是我的代码:
$data = file_get_contents($_FILES["picture"]["tmp_name"]);
$image = base64_encode($data);
我已经成功将 blob 保存到 MySQL,但是我无法在网站中显示图像。
<td> <img src="<?php echo base64_decode($user->getPicture()); ?>"></td>
因为结果是:������� and many more
我错了吗? 请指正:)
图像的 src
属性必须指向 url。您不能将图像的原始二进制内容转储到那里并期望它可以工作。浏览器将获取原始二进制数据并尝试访问页面的原始服务器并请求该数据,就好像它是一个文件 url。即你在从 http://example.com/foo/bar/baz.php
:
<img src="blahblahblahblah" />
这将导致浏览器请求
http://example.com/foo/bar/blahblahblahblah
如果你想在页面中嵌入你的图片,那么你必须使用 Data URI:
<img src="data:image/jpeg;base64,<?php echo $base64_encoded_image ?>" />