Maison >développement back-end >C++ >Comment contrôler l'affichage du fichier (voir ou télécharger) dans ASP.NET MVC?
Options d'affichage de fichiers de contrôle (Afficher ou télécharger) dans ASP.NET MVC
Les applications ASP.NET MVC doivent souvent servir les fichiers stockés dans une base de données aux utilisateurs. Un défi clé consiste à fournir aux utilisateurs le contrôle de la façon dont ces fichiers sont gérés - qu'ils soient visualisés directement dans le navigateur ou téléchargés.
Bien que FileResult
offre une solution simple, il peut être peu fiable pour les types de fichiers inconnus, souvent défaut en téléchargement. Pour un contrôle plus robuste, envisagez d'utiliser FileStreamResult
ou de manipuler l'en-tête ContentDisposition
.
L'utilisation FileStreamResult
offre un compromis:
<code class="language-csharp">// Opens known types, downloads unknown types (incorrect filename/extension) return new FileStreamResult(new MemoryStream(document.Data), document.ContentType);</code>
Pour forcer régulièrement un téléchargement, quel que soit le type de fichier, utilisez la méthode File
avec un en-tête ContentDisposition
personnalisé:
<code class="language-csharp">public ActionResult Download() { var document = ...; var cd = new System.Net.Mime.ContentDisposition { FileName = document.FileName, Inline = false, // Forces download }; Response.AppendHeader("Content-Disposition", cd.ToString()); return File(document.Data, document.ContentType); }</code>
Pour améliorer le support international des caractères, la classe ContentDispositionHeaderValue
est recommandée:
<code class="language-csharp">public IActionResult Download() { var document = ...; var cd = new ContentDispositionHeaderValue("attachment") { FileNameStar = document.FileName // Use FileNameStar for better encoding }; Response.Headers.Add(HeaderNames.ContentDisposition, cd.ToString()); return File(document.Data, document.ContentType); }</code>
Ces méthodes permettent aux développeurs de gérer précisément la livraison de fichiers, assurant une expérience utilisateur cohérente et prévisible, que l'utilisateur ait l'intention d'afficher ou de télécharger le fichier.
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!