【发布时间】:2012-04-13 17:47:07
【问题描述】:
我正在尝试使用 data uri 方案在浏览器上解码 base64 编码的图像。
这是我的 html 的样子:
<img src="data:image/png;base64,base64_string_here"
alt="base64 image name" width="600" height="400" border="1" />
Chrome 和 Firefox 无法解码这些图像并显示默认的“图像无法加载”图像。我已经验证我传递给浏览器的 base64 图像是正确的。事实上,Safari 显示相同的图像没有问题。
我尝试让浏览器解码类似的 base64 编码的 pdf,但这也不起作用。 (同样,它不适用于 Chrome 和 Firefox,但适用于 Safari。)
<img src="data:application/pdf;base64,base64_string_here"
alt="base64 pdf name" width="600" height="400" border="1" />
Chrome 版本:18.0,FF 版本:11.0
有谁知道这里可能出了什么问题? (如果它有帮助的话——我试图显示的 base64 编码图像是 USPS 运输标签)。
【问题讨论】:
-
你能用base64数据发布一个完整的例子吗?
-
你验证过火狐可以打开原图吗?
-
这里是base64数据的链接:pastebin.com/KGvQUDYN
-
@Anonymous 没有“原始”图像 - 我得到的响应来自 USPS 的服务器。此响应是 base64 编码的字符串,需要在浏览器上显示为图像。我对base64没有深入的了解,但是当我使用在线解码器(opinionatedgeek.com/dotnet/tools/Base64Decode/)时,我只能在Safari中打开它返回的二进制文件(将其扩展名更改为.jpg) . Firefox 和 Chrome 无法打开此文件。这些信息有帮助吗?
-
发现了一些更有用的信息:我从 USPS 取回的图像是 TIF。 Google Chrome 和 Firefox 都不打开 TIF 文件。这就解释了为什么他们无法解码 base64 图像文件。但我也可以从 USPS 而不是 TIF 获得 pdf。谷歌浏览器应该能够打开 pdf,但据我所见,当它们采用 base64 编码时,它无法解码它们。但是,Chrome 在我先解码后能够打开 pdf。 (来源:en.wikipedia.org/wiki/…)
标签: html image firefox google-chrome base64