2011-08-02 58 views
0

大家好,我希望我能得到这个问题的答复...我有网格视图和e表中的一个字段是带有超链接的模板字段,这个超链接基本上是一个缩略图...当用户点击这个缩略图时,整个图像在另一个窗口中打开。这在IE中正常工作,但当我在Mozilla或Chrome中打开网站...我没有得到完整的图像...我得到一些随机数字和字母......所以不知道为什么这只发生在Mozilla和Chrome ...是否有任何额外的代码行需要为这两个浏览器添加。任何人都可以提出一个想法或一段代码,可以帮助我解决这个问题吗?再次感谢大家,希望能有人帮助我解决这个问题......如果还有其他事情让我知道......谢谢你缩略图无法打开Mozilla和谷歌浏览器中的图像

+2

建议您发布相关代码(缩略图/超链接的标记和提供实际图像的代码)。 – VinayC

+0

@VinayC:下面给出的代码作为答案...我希望它应该为你清除一些东西,你将能够帮助我...谢谢 – user613037

回答

1

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

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

Response.ContentType = "image/jpeg"; 

您也可以考虑在全图像的情况下设定的内容部署诸如

Response.AppendHeader("content-disposition", "inline; filename=" + fileName); 

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

... 
    Response.TransmitFile(filePath); 
} 

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

如果是缩略图,您应该考虑缓存生成的缩略图,以避免重复生成缩略图。

+0

我试过了你给出的建议,但没有任何帮助。 ...我不知道最新出现的问题....它的问题在Mozilla和Chrome他们两个... – user613037

+0

实际上帮助...我试着把它放在不同的地方,它帮助....感谢很多VinayC – user613037