在ie8中,base64字符串图像数据不完整显示

时间:2013-11-25 07:47:20

标签: c# html asp.net internet-explorer

我必须显示一个base64字符串格式的图像。它在ie9,chrome和mozilla中运行良好。但是当使用ie8图像时不能完全显示。出于安全目的,我无法在服务器和用户URL上保存图像以显示图像。是否有任何其他方式在ie8上显示图像。

1 个答案:

答案 0 :(得分:2)

根据Ryan McGrath在Internet Explorer and Base64 image display的回答:IE8只能显示最大32KB的Base64图像。

很可能您的图片太大而无法由IE8处理。

我现在没有时间编写大量示例,但可能的解决方法是通过其他网页提供图像。将图像读入流中并将其发回。例如,您可能会这样做:

void GetImage(int imageId) {
    byte[] imageData = GetDataFromDatabase(imageId);
    using (MemoryStream ms = new MemoryStream(imageData)) {
        Response.ContentType = "image/png";
        ms.WriteTo(Response.OutputStream);
    }
}

然后在您的网页中,您可以执行以下操作:

<img src="Image.aspx?GetImage&imageId=1"/>

注意: 所有这些都是非工作代码,可能包含拼写错误和不存在的方法。但这只是让你入门的想法。如果您在Google上搜索“C#+ asp.net输出图像”,那么您可以使用http://www.codeproject.com/Articles/33310/C-Save-and-Load-Image-from-Database等工作代码示例获得大量结果。