缩略图不会在Mozilla和谷歌浏览器中打开图像

时间:2011-08-02 06:13:34

标签: asp.net image thumbnails

大家好,我希望我能回复这个问题...我有网格视图,e表中的一个字段是带有超链接的模板字段,这个超链接基本上是一个缩略图...当用户单击此缩略图图像,将在另一个窗口中打开完整图像。这在IE浏览器中运行良好,但是当我用mozilla或chrome打开网站时...我没有得到完整的图像...我得到一些随机数字和字母......所以不知道为什么这只发生在Mozilla和chrome ......我需要为这两个浏览器添加任何额外的代码行。任何人都可以提出一个想法或一段代码来帮助我解决这个问题吗?再次感谢大家,并希望看到有人帮我解决这个问题...如果有什么让我知道的话...谢谢你< / p>

1 个答案:

答案 0 :(得分:1)

从您的代码中可以看出,您没有为响应设置内容类型。由于缺乏内容类型,浏览器可能会将其视为通用二进制内容,因此存在问题。该问题适用于缩略图,但在这种情况下,您已将其设置为图像的源 - 因此浏览器知道二进制数据是某种图像格式。像谷歌浏览器这样的浏览器会在这种情况下发出警告,说数据是二进制的,但它会将其推断为图像。

解决方案很简单 - 明确设置内容类型:

Response.ContentType = "image/jpeg";

您还可以考虑在完整图片(例如

)的情况下设置内容处理
Response.AppendHeader("content-disposition", "inline; filename=" + fileName);

从性能角度来看,您应该在发送图像时考虑未缓冲的响应。此外,您还可以在磁盘上安装jpeg文件并直接传输,例如

...
    Response.TransmitFile(filePath);
}

在这种情况下,ASP.NET运行时处理文件传输到IIS,它知道如何将文件传输到客户端。

如果是缩略图,您应该考虑缓存生成的缩略图,以避免一次又一次地重新生成它们。