我无法在线显示Base64图像 .
有人能指出我正确的方向吗?
<!DOCTYPE html>
<html>
<head>
<title>Display Image</title>
</head>
<body>
<img style='display:block; width:100px;height:100px;' id='base64image'
src='data:image/jpeg;base64, LzlqLzRBQ...<!-- base64 data -->' />
</body>
</html>
10 回答
这将显示base 64数据的图像:
您需要指定正确的Content-type,Content-encoding和charset之类的
根据data URI scheme的语法:
另请参阅http://danielmclaren.com/node/90
似乎您的数据网址中存在一些错误 .
您可以在线使用base64 encode / base64 decode tool对图像进行编码以进行嵌入:http://base64online.org/encode/
选中“格式化为数据URL”选项,将base64数据格式化为URL .
你可以用它
你可以将你的数据直接放在网址上
并获取图像数据你可以使用PHP函数
因此,您可以复制粘贴imageData的值并将其直接粘贴到您的网址,并将其分配给图像的src属性
数据URI中出现的字符应编码为%2B . 这就像编码URI中的任何其他字符串一样 . 例如,当带有参数的URI作为另一个URI的一部分发送时,必须对参数分隔符(?和&)进行编码 .
首先将图像转换为Base64(编码为Base64) . 您可以在线或使用PHP脚本进行操作 .
转换后,您将获得结果
现在它使用起来很简单 .
你必须将它放在图像的
src
中并在其中定义为base64编码形式 .例:
我的嫌疑人当然是实际的base64数据,否则它看起来不错 . 请参阅this fiddle,其中类似的方案正在运作 . 您可以尝试指定char set .
您可以尝试使用this base64 decoder查看您的base64数据是否正确 .
试试这个:
Not recommended for production as it is only compatible with modern browsers.
我做的是用img.jpg结束网址,以避免被缓存,并且无法检查客户是否打开了电子邮件,完整的URL看起来像“
http://midomain.com/<Random letters numbers>/img.jpg
”使用随机内容作为网址的一部分,Google不会缓存图片 . 重要的部分是使用带有扩展名的有效图像名称结束URL .
这是我的Symfony代码(我认为这对于裸PHP也很好)来发送图像 .
exit
非常重要,因此PHP不会发送 anything else .