0

我收到了一堆“.tif”图像文件,这些文件应该显示在我的 .aspx 页面上。虽然我可以在设计时看到这些图像。asp:Image 无法在浏览器上呈现图像(.tif)。

如果我使用 .jpg 文件而不是 tiff 图像,它会完美呈现。

任何想法为什么这是一个限制?

我尝试过的事情

在我的项目中有一个处理程序文件SampleHandler.ashx来处理请求

  public void ProcessRequest(HttpContext context)
        {
            string path = context.Server.MapPath("~/img/image.tif");
            Image img = Image.FromFile(path);
            img.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);   
        }

并在我的 aspx 代码中引用 Handler。

前任:

<img src="SampleHandler.ashx"/>

这种方法有效!但是如果我要加载多个“.tif”文件怎么办?

谢谢

配置:ASP.NET 2.0 VSNET2008

4

3 回答 3

1

asp:Image 仅将 img 标记呈现给 HTML 输出。检查生成的源以验证它是否具有正确的路径。如果是这样,请尝试直接浏览到该路径并查看是否获得图像。

(假设您在直接浏览时看不到图像,这意味着您的服务器未配置为提供 tiff 文件,或者您的路径不正确)。

于 2012-07-16T09:09:26.093 回答
0

浏览器通常不支持 .TIF (TIFF) 文件格式。您应该只期望当前或更旧的浏览器支持图像文件的 GIF、JPG 和 PNG。请参阅有关图像的 W3C 页面

似乎在开发环境中起作用的原因是它只是使用操作系统来解码将支持更多图像格式的图像。但这只是一种错觉,因为浏览器不支持它。

于 2012-07-16T23:44:35.620 回答
0

您需要配置您的 Web 服务器以返回正确的 MIME 类型。

tiff 文件的正确 mime 类型是image/tiff

您需要运行 IIS Express、IIS 7 或更高版本,并将以下内容添加到您的 web.config

<system.webServer>
  <staticContent>
    <mimeMap fileExtension=".tiff" mimeType="image/tiff" />
    <mimeMap fileExtension=".tif" mimeType="image/tiff" />
  </staticContent>
</system.webServer>

如果您正在运行 webdev 服务器,那么您就不走运了(它很古老)。安装 IIS Express 或改为运行 IIS。

于 2012-07-16T22:31:05.760 回答