Quanto segue restituisce un PDF che il browser tenta di visualizzare direttamente in linea. Funziona correttamente Tuttavia, se provo a scaricare il file, il nome del download non è "myPDF.pdf", ma piuttosto l'ID nella route (myapp/controller/PDFGenerator/ID). È possibile impostare il nome del download del file come "myPDF.pdf"?ASP.NET MVC FileStreamResult, fileDownloadName non viene utilizzato
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");
}
Sì, che era il punto della mia risposta. Se vuoi che il file sia visualizzato in linea, ** non puoi ** specificare un nome file. Se si visualizza il file PDF in linea, viene aperto con il plug-in associato al computer client per aprire i file PDF. Il comportamento varierà tra i vari plug-in. –
@Nalan M risposta potrebbe costringerlo a scaricare, nella maggior parte dei casi. Quindi, non dovrebbe essere detto come non possibile. –
Una domanda, chi si occupa di smaltire lo stream qui? – Legends