【问题标题】:HttpContext.Current.Response.AddHeader() not setting Content-Type headerHttpContext.Current.Response.AddHeader() 未设置 Content-Type 标头
【发布时间】:2013-12-10 09:01:13
【问题描述】:

我正在使用第三方软件从 html 文档呈现 PDF。我创建了一个小型测试项目,并使用 <asp:Button>OnClick 事件,我能够从目录中读取 html 文档并将其呈现为 PDF,没有任何问题。

响应创建如下:

HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("Content-Type", "application/pdf");
HttpContext.Current.Response.AddHeader("Content-Disposition", 
    String.Format("{0}; filename=Test.pdf;", "inline" ));
HttpContext.Current.Response.BinaryWrite(pdfBuffer);
HttpContext.Current.ApplicationInstance.CompleteRequest();

当我在 Chrome 中查看响应时,我可以看到 Content-Type 设置正确:

内容处置:内联;文件名=HtmlToPdf.pdf;

内容长度:101482

内容类型:应用程序/pdf

我已尝试将上述内容转移到我当前的项目中。唯一的区别是,我使用的是 DevExpress 网格视图中的自定义按钮,而不是一个 <asp:Button>。我最初在回调面板中处理了自定义按钮单击,但没有设置 Content-Type。在 Chrome 中查看响应证明了这一点:

内容处置:内联;文件名=5.pdf;

内容编码:gzip

内容长度:149015

内容类型:文本/纯文本;字符集=utf-8

我也尝试过使用gvDocuments.CustomButtonCallback += new ASPxGridViewCustomButtonCallbackEventHandler(gvDocuments_CustomButtonCallback); 事件,但仍未设置 Content-Type。

有人知道为什么我不能在上述场景中设置 Content-Type 吗?

【问题讨论】:

  • PDF 看起来还可以吗?似乎 IIS 管道中的某些东西正在应用压缩,您是否尝试过禁用它?
  • 它甚至不渲染。响应是 200 OK,但 Content-Type 是 text/plain。我在本地调试,所以它与 VS Development Server 一起使用。是否有任何理由不应该在回调/网格视图自定义按钮单击事件中设置它?

标签: c# asp.net pdf webforms httpresponse


【解决方案1】:

你可以试试

HttpResponse response = HttpContext.Current.Response;
response.ClearContent();
response.Clear();

response.ContentType = "应用程序/pdf";

response.AddHeader("Content-Disposition", "attachment; filename=" + yourFileName + ".pdf");
stream.WriteTo(response.OutputStream);
response.Flush();
response.End();

希望它有效:)

【讨论】:

  • 像魅力一样工作。谢谢!
【解决方案2】:
Dim Resp As HttpResponse = HttpContext.Current.Response
Resp.Headers.Remove("X-Frame-Options")
Resp.AppendHeader("X-Frame-Options", "SAMEORIGIN")

通过在页面加载/初始化方法中添加以上行将添加http响应头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-05
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 2011-01-04
    • 1970-01-01
    • 2021-12-22
    相关资源
    最近更新 更多