Servir les fichiers dans ASP.NET MVC: télécharger ou afficher en ligne
La gestion des téléchargements de fichiers et la visualisation en ligne dans les applications ASP.NET MVC peuvent présenter des difficultés, en particulier lorsqu'ils traitent de divers types de fichiers. Ce guide décrit une solution robuste.
L'approche FileStreamResult
, bien que apparemment simple, a des limites. Une méthode plus efficace tire parti de la classe System.Net.Http.Headers.ContentDispositionHeaderValue
, offrant un meilleur contrôle et résoudre les problèmes de codage des caractères internationaux. Considérez cet exemple de code amélioré:
<code class="language-csharp">public ActionResult ServeFile(string fileName) { var document = ... // Retrieve file data from your data source (database, file system, etc.) var cd = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment"); // Or "inline" for inline viewing cd.FileNameStar = fileName; // Use FileNameStar for proper international character handling return File(document.Data, document.ContentType, fileName, cd); }</code>
Cette approche améliorée utilise ContentDispositionHeaderValue
pour spécifier la disposition des fichiers (attachment
pour le téléchargement, inline
pour la visualisation en ligne) et FileNameStar
assure une gestion correcte des noms de fichiers contenant des caractères internationaux. La méthode File
accepte désormais directement l'objet ContentDispositionHeaderValue
, simplifiant le processus. N'oubliez pas d'ajuster la logique de récupération de fichiers (var document = ...
) en fonction de votre mécanisme de stockage de données spécifique. Cette méthode offre une solution plus propre, plus fiable et à l'épreuve du futur par rapport aux approches plus anciennes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!