En WebForms, je devrais normalement avoir le code comme celui-ci pour que le navigateur présente une fenêtre « Télécharger le fichier » avec un type de fichier arbitraire, comme un PDF, et un nom de fichier:Comment puis-je présenter un fichier à télécharger à partir d'un contrôleur MVC?
Response.Clear()
Response.ClearHeaders()
''# Send the file to the output stream
Response.Buffer = True
Response.AddHeader("Content-Length", pdfData.Length.ToString())
Response.AddHeader("Content-Disposition", "attachment; filename= " & Server.HtmlEncode(filename))
''# Set the output stream to the correct content type (PDF).
Response.ContentType = "application/pdf"
''# Output the file
Response.BinaryWrite(pdfData)
''# Flushing the Response to display the serialized data
''# to the client browser.
Response.Flush()
Response.End()
Comment puis-je obtenir le même tâche dans ASP.NET MVC?
Ceci est un excellent exemple de pourquoi ASP.NET MVC génial. Ce que vous deviez auparavant faire dans 9 lignes de code à la recherche de confusion peut être fait en une ligne. Tellement plus facile! –
Merci tvanfosson, j'ai cherché la meilleure solution pour ce faire, et c'est génial. –
Cela nécessite une extension de fichier sur le nom de fichier ou sinon il ignorera complètement le nom de fichier et contenttype et essaiera juste de diffuser le fichier dans le navigateur. Il utilisera également le nom de la page Web si le navigateur ne reconnaît pas le type de contenu (c'est-à-dire octet-stream) lorsqu'il force le téléchargement et qu'il n'aura pas d'extension du tout. – EdenMachine