以下示例返回瀏覽器試圖直接顯示的PDF。這工作正常。但是,如果我嘗試下載文件,則下載名稱不是「myPDF.pdf」,而是路徑中的ID(myapp/controller/PDFGenerator/ID)。是否可以將文件下載名稱設置爲「myPDF.pdf」?ASP.NET MVC FileStreamResult,fileDownloadName未使用
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文件,則打開該客戶端計算機上的插件以打開PDF文件。各種插件的行爲會有所不同。 – 2013-04-07 13:09:11
@Nalan M答案可能會迫使其下載,在大多數情況下。所以,不應該說這是不可能的。 – 2016-02-26 09:05:45
有一個問題,誰負責在這裏處理流? – Legends 2016-04-09 22:03:54