gpt4 book ai didi

asp.net-mvc-3 - Chrome、pdf 显示、从服务器收到的重复 header

转载 作者:行者123 更新时间:2023-12-02 18:24:25 25 4
gpt4 key购买 nike

我在网站上有一个部分,我在灯箱内显示 pdf。最近的 chrome 升级打破了这种显示:

Error 349 (net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION): Multiple Content-Disposition headers received. This is disallowed to protect against HTTP response-splitting attacks.

这在 IE 中仍然可以正常工作。

我在 IIS6 上使用 ASP.NET MVC3

我用来生成文件的代码如下。

如果我删除内联语句,则会下载文件,但这会破坏灯箱功能。

问题代码

public FileResult PrintServices()
{
//... unrelated code removed
MemoryStream memoryStream = new MemoryStream();
pdfRenderer.PdfDocument.Save(memoryStream);
string filename = "ServicesSummary.pdf";

Response.AppendHeader("Content-Disposition", "inline;");

return File(memoryStream.ToArray(), "application/pdf", filename);
}
<小时/>

修复

删除

Response.AppendHeader("Content-Disposition", "inline;");

然后更改

return File(memoryStream.ToArray(), "application/pdf", filename);

return File(memoryStream.ToArray(), "application/pdf");

最佳答案

如果您不需要指定文件名,上面的解决方案就很好,但我们希望保留为用户指定的默认文件名。

我们的解决方案最终是文件名本身,因为它包含一些逗号。我用“”替换了逗号,文件现在按照 Chrome 中的预期交付了文档。

FileName = FileName.Replace(",", "")

Response.ContentType = "application/pdf"
Response.AddHeader("content-disposition", "attachment; filename=" & FileName)
Response.BinaryWrite(myPDF)

关于asp.net-mvc-3 - Chrome、pdf 显示、从服务器收到的重复 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8588818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com