在asp.net 1.1中设置Response.ContentType =“image / tiff”,IE7不显示tif文件

时间:2008-11-14 01:47:40

标签: .net asp.net internet-explorer-7 tiff asp.net-1.1

我有一个Asp.Net 1.1应用程序,它使用以下代码将图像文件写入弹出网页。

    Response.ContentType="image/tiff"   'Only for Tif files
    Dim objStream As Object
    objStream = Server.CreateObject("ADODB.Stream")
    objStream.open()
    objStream.type = 1
    objStream.loadfromfile(localfile)
    Response.BinaryWrite(objStream.read)

我正在用TIF文件测试它。这些文件在IE6和Safari中正确显示,但在IE7中它们没有显示,似乎没有任何东西返回到网页。正常显示带有jpg,gif扩展名的文件。这可能是什么问题?

3 个答案:

答案 0 :(得分:1)

嗯,这取决于您的受众。但理想情况下,为了支持旧版浏览器,您不应该假设它们可以处理TIFF。

至少,加载TIFF,选择第一帧(页面),将DrawImage作为新的位图,将位图保存为JPG到内存流,然后将其发送到Response。

如果您不熟悉.NET的GDI +图像处理或听起来很难,请参阅http://www.bobpowell.net/faqmain.htm获取建议。只需几行代码即可完成这些步骤中的每一步。如果您还不了解GDI +,那么任何Web开发人员都应该学习它。这可能会使这项“艰难(但安全)的方式”值得单靠教育。如果你已经知道如何,它将不会花费半小时。

如果必须显示多页TIFF,并且希望用户控制要查看的页面,则必须创建用户界面来设置页码。如果您尝试每页显示多个TIFF,这可能会变得非常重要,因此请考虑在第一个网页上显示所有tiff#1页面,或者允许他们通过链接到另一个网页来查看后续的tiff页面上一页/下一页tiff页面按钮。它应该是一个通用页面,它接受文件名和当前页码(上一个/下一个按钮将指向自己+/-一个页码)作为URL参数。

如果您知道自己只会显示文本文档而不是照片,请尝试将单帧GIF而不是TIFF发送到浏览器,以减少文本上的Jpegginess。但事先警告 - 照片看起来很糟糕GIF。

答案 1 :(得分:0)

您是否尝试将Content-Disposition设置为内联?

Response.AppendHeader("Content-Disposition", "inline");

答案 2 :(得分:0)

是的,现在就试过了。不行。是否与tiff有4个字母而不是3个字符有关。我在某处读到IE7不支持4个字母的扩展名。