Sau đây trả về một tệp PDF mà trình duyệt cố gắng hiển thị trực tiếp nội tuyến. Điều này hoạt động chính xác. Tuy nhiên, nếu tôi cố gắng tải xuống tệp, tên tải xuống không phải là "myPDF.pdf", mà thay vào đó là ID trong tuyến đường (myapp/controller/PDFGenerator/ID). Có thể đặt tên tải xuống tệp thành "myPDF.pdf" không?ASP.NET MVC FileStreamResult, fileDownloadName không được sử dụng
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");
}
Vâng, đó là toàn bộ các điểm câu trả lời của tôi. Nếu bạn muốn tệp được hiển thị nội tuyến, bạn ** không thể chỉ định tên tệp. Nếu bạn hiển thị tệp PDF nội dòng, tệp được mở bằng plugin được liên kết trên máy khách để mở tệp PDF. Hành vi sẽ khác nhau giữa các plugin khác nhau. –
@Nalan M trả lời có thể buộc nó tải xuống, trong hầu hết các trường hợp. Vì vậy, nó không nên được nói là không thể. –
Một câu hỏi, ai sẽ xử lý luồng ở đây? – Legends