使用IHttpHandler服务图像

时间:2016-06-02 14:05:06

标签: c# ihttphandler

我正在使用仅在我们的内部网络上可用的Web服务器。我需要通过我们的DMZ Web服务器制作一个可供公众使用的图像。内部系统有一个GUI,任何人都可以上传任何类型的图像,所以我的HttpHandler必须灵活。

我目前使用的代码是:

WebResponse webResponse = WebRequest.Create(imagePath).GetResponse();
using (Stream stream = webResponse.GetResponseStream())
{
    context.Response.Clear();
    context.Response.ContentType = webResponse.ContentType;
    stream.CopyTo(context.Response.OutputStream);
    context.Response.End();
}

这似乎有效,它可以在HTML网页上正确显示图片,但是当我右键点击Chrome并选择"在新标签页中打开图片"我弄乱了这样的文字:

enter image description here

有什么建议让我的代码更好或者这样可以吗?

谢谢!

编辑:看起来像这段代码片段完全应该做的事情。问题在于内部托管的图像本身。它甚至在通过这个HttpHandler之前就提供了完全相同的乱码文本。

1 个答案:

答案 0 :(得分:3)

您的内容类型标题可能未正确设置。

将其更改为context.Response.ContentType = "image/png";,但将“png”替换为您正在加载的图像时间。