未在IE中显示的Base64编码图像

时间:2014-04-09 20:32:26

标签: javascript html image internet-explorer

构建html内容服务器端,它包含转换为base64字符串的PNG图像,然后使用字符串构建器附加到字符串。 我有200个图像,每个图像我循环每个图像并转换它们。但是,当内容返回到客户端时,浏览器窗口仅显示大约100个图像,其余的全部为空白。即红色" X"显示为图像的占位符。

示例

using(var memoryStream = new MemoryStream())
{
     fileStream.CopyTo(memoryStream);
     byte[] imgBytes = memoryStream.ToArray();
     string base64String = Convert.ToBase64String(imgBytes);
     html.Append("<img src='data:image/png;base64," + base64String + "'/>");
}  

它似乎只是IE 9中的一个问题,在Chrome中运行良好。 在IE中可能导致此问题的是IE浏览器设置?最大尺寸?等等。

1 个答案:

答案 0 :(得分:2)

Internet Explorer有limited support(请参阅&#34;备注&#34;部分)了解数据URI方案,例如:

  • 出于安全原因,数据URI仅限于下载 资源。数据URI不能用于导航,脚本或 填充框架或iframe元素。

  • 数据URI不能超过32,768个字符。&lt; - 这可以解释为什么某些图像正确显示的原因。

  • 必须正确编码资源数据;否则,出错 发生并且未加载资源。 &#34;#&#34;和&#34;%&#34;人物 必须编码,以及控制字符,非美国ASCII 字符和多字节字符。