【问题标题】:HttpHandler to render a png from an array of bytesHttpHandler 从字节数组中渲染 png
【发布时间】:2012-02-14 15:09:43
【问题描述】:

好的,这应该很简单,但我无法让它工作。我有一个字节数组,从 png 文件中读取。我正在尝试编写一个(非常)简单的 HttpHandler 来渲染图像:

context.Response.AddHeader("Content-Type", "image/png")
context.Response.BinaryWrite(bytes)
context.Response.End()

当我在浏览器中打开页面时,我只是乱码,

�PNG IHDR���X��sRGB���gAMA���pHYs�o�d` ...

这显然是我做错了标题信息。有什么建议吗?

【问题讨论】:

  • 您尝试在.End() 之前拨打context.Response.Flush() 吗?另外,你用什么来实现这一点? Aspx 页面、Web 服务、mvc 操作?
  • 修复了,原来只是浏览器问题。重启 IE 肯定有帮助。

标签: c# .net vb.net content-type httphandler


【解决方案1】:

尝试使用ContentType 属性而不是AddHeader

context.Response.ContentType = "image/png";
...

另外两个诊断:

  • 如果您在浏览器中使用“保存”并将其保存为 png 文件,是否可以正确呈现?
  • 使用Wireshark 查看响应中真正返回的内容(确切的字节等)

【讨论】:

  • 或者在wireshark之​​前fiddler,为了更友好的调试;)。
  • @ppiotrowicz:我个人倾向于直接访问 Wireshark,以避免对正在发生的事情进行任何与代理相关的更改。不过个人喜好问题:)
  • 现在可以工作了,似乎只是我的浏览器拒绝重新加载图像,不管我用 CTRL-F5 敲了多少。但我肯定会研究 Wireshark,感谢您的指点。
猜你喜欢
  • 1970-01-01
  • 2015-11-19
  • 2012-03-13
  • 1970-01-01
  • 1970-01-01
  • 2015-08-08
  • 2019-07-23
  • 1970-01-01
  • 2015-04-12
相关资源
最近更新 更多