Следующее возвращает 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-файлов. Поведение будет варьироваться между различными плагинами. –
@ Ответ Nalan M может заставить его скачать, в большинстве случаев. Поэтому нельзя сказать, что это невозможно. –
Один вопрос, кто позаботится об утилизации здесь? – Legends