我这里有点问题。 我尝试将图像转换为字符串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
我错了吗? 请纠正我:)
答案 0 :(得分:5)
图像的src
属性必须指向网址。您无法在其中转储图像的原始二进制内容并期望它可以工作。浏览器将获取原始二进制数据并尝试访问页面的原始服务器并请求该数据,就像它是文件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 ?>" />