ASP.NET MVC FileStreamResult, fileDownloadName n'est pas utilisé
La suivante renvoie un fichier PDF dont le navigateur tente d'afficher directement en ligne. Cela fonctionne correctement. Cependant, si j'ai essayez de télécharger le fichier, le téléchargement, le nom n'est pas "myPDF.pdf", mais au lieu de l'ID de la route (myapp/contrôleur/PDFGenerator/ID). Est-il possible de paramétrer le fichier de téléchargement nom "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");
}
source d'informationauteur user1620141
Vous devez vous connecter pour publier un commentaire.
Non, ce n'est pas possible avec un fichier PDF affiché en ligne. Que vous pourriez réaliser si vous envoyez le Contenu de l'en-tête de Disposition avec une pièce jointe:
Également remarqué comment j'ai enlevé le superflu
MemoryStream
vous utilisez et le chargement du PDF dans la mémoire où vous pourriez avoir directement en streaming pour le client qui aurait été beaucoup plus efficace.Si vous utilisez FileStreamResult pour télécharger le fichier, essayez d'utiliser ce contrôleur
Il est possible en faisant l'id d'une chaîne qui représente le nom du fichier sans l'extension.
L'url alors, puis à la fin, comme ce