gpt4 book ai didi

asp.net-mvc - ASP.NET MVC FileStreamResult、fileDownloadName 未使用

转载 作者:行者123 更新时间:2023-12-01 22:17:47 24 4
gpt4 key购买 nike

以下内容返回浏览器尝试直接内联显示的 PDF。这工作正常。但是,如果我尝试下载该文件,下载名称不是“myPDF.pdf”,而是路径中的 ID (myapp/controller/PDFGenerator/ID)。是否可以将文件下载名称设置为“myPDF.pdf”?

public FileStreamResult PDFGenerator(int id)
{
MemoryStream ms = GeneratePDF(id);

byte[] file = ms.ToArray();
MemoryStream output = new MemoryStream();
output.Write(file, 0, file.Length);
output.Position = 0;
HttpContext.Response.AddHeader("content-disposition",
"inline; filename=myPDF.pdf");

return File(output, "application/pdf", fileDownloadName="myPDF.pdf");
}

最佳答案

不,对于内联显示的 PDF 来说这是不可能的。如果您将 Content-Disposition header 作为附件发送,则可以实现此目的:

public ActionResult PDFGenerator(int id)
{
Stream stream = GeneratePDF(id);
return File(stream, "application/pdf", "myPDF.pdf");
}

另请注意,我如何删除您正在使用的不必要的 MemoryStream 并将 PDF 加载到内存中,您可以将其直接流式传输到客户端,这样效率会高得多。

关于asp.net-mvc - ASP.NET MVC FileStreamResult、fileDownloadName 未使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15862683/

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