我正在使用仅在我们的内部网络上可用的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并选择"在新标签页中打开图片"我弄乱了这样的文字:
有什么建议让我的代码更好或者这样可以吗?
谢谢!
编辑:看起来像这段代码片段完全应该做的事情。问题在于内部托管的图像本身。它甚至在通过这个HttpHandler之前就提供了完全相同的乱码文本。答案 0 :(得分:3)
您的内容类型标题可能未正确设置。
将其更改为context.Response.ContentType = "image/png";
,但将“png”替换为您正在加载的图像时间。