【问题标题】:How to handle error with content-disposition如何处理内容处置错误
【发布时间】:2011-02-20 15:39:05
【问题描述】:

我应该如何处理发送附件的 Content-Disposition 标头后发生的异常?我正在尝试在服务器上生成报告并将其作为文件发送,但如果在报告生成期间发生异常,错误消息本身会发送到浏览器,浏览器仍将其作为文件内容并显示另存为对话。用户不知道有错误生成报告,现在保存格式错误的文件。

有没有办法取消带有此标头的响应并重定向到错误页面?或者我还能做些什么来通知用户该错误?

也许我可以先生成报告,并且只有在没有错误的情况下发送标题,但我希望报告直接呈现到响应输出流,这样它就不需要留在内存中。

这是我的代码:

this.Response.ContentType = "application/octet-stream";
this.Response.AddHeader("Content-Disposition", @"attachment; filename=""" + item.Name + @"""");
this.Response.Flush();

GenerateReportTo(this.Response.OutputStream); // Exception occurs

感谢您的任何建议

【问题讨论】:

    标签: c# asp.net http error-handling content-disposition


    【解决方案1】:

    这并不是真正特定于 Content-Disposition。

    一旦开始发送响应正文,就无法更改 HTTP 状态。如果此时发生错误,我知道发出错误信号的唯一方法是关闭连接。

    【讨论】:

      猜你喜欢
      • 2014-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-13
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      相关资源
      最近更新 更多