0

我有一个 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 扩展名的文件可以正常显示。这里可能有什么问题?

4

3 回答 3

1

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

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

如果您不熟悉 .NET 的 GDI+ 图像处理或听起来很难,请参阅https://web.archive.org/web/20141230145656/http://bobpowell.net/faqmain.aspx获取建议。只需几行代码即可完成这些步骤中的每一个。如果您还不了解 GDI+,那么对于任何 Web 开发人员来说都是值得学习的。这可能会使这种“艰难(但安全)的方式”仅仅为了教育而值得。如果您已经知道如何操作,则只需 1/2 小时。

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

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

于 2008-11-14T19:24:37.367 回答
0

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

Response.AppendHeader("Content-Disposition", "inline");
于 2008-11-14T01:54:34.803 回答
0

是的,刚才试过了。不工作。这与 tiff 有 4 个字母而不是 3 个有关吗?我在某处读到 IE7 不支持 4 个字母扩展名。

于 2008-11-14T02:05:12.987 回答