Utilisation de FileResult d'ASP.NET MVC pour les téléchargements de fichiers universels
ASP.NET MVC FileResult
offre une solution robuste pour gérer les téléchargements de fichiers. Cependant, les exemples standards se concentrent souvent sur des types de fichiers spécifiques, laissant sans réponse la question de savoir comment gérer les téléchargements de divers types de fichiers. Cet article répond à ce défi.
Le problème : téléchargement de fichiers de types inconnus
Le problème principal est le téléchargement de fichiers dont le type de fichier n'est pas prédéterminé. Les méthodes standard peuvent avoir des difficultés lorsqu'il s'agit de traiter une grande variété d'extensions de fichiers.
La solution : tirer parti de FileResult
et du type MIME Octet-Stream
La clé pour gérer divers types de fichiers réside dans l'utilisation de la classe FileResult
et la spécification du type MediaTypeNames.Application.Octet
MIME. Ce type MIME générique indique un flux d'octets, adapté à tout type de fichier.
Voici comment mettre en œuvre cela :
<code class="language-csharp">public FileResult Download() { byte[] fileBytes = System.IO.File.ReadAllBytes(@"c:\folder\myfile.ext"); string fileName = "myfile.ext"; return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName); }</code>
Cet extrait de code démontre :
fileBytes
: Contient le contenu binaire du fichier, lu directement depuis le système de fichiers.MediaTypeNames.Application.Octet
: Spécifie le type MIME universel du flux d'octets.fileName
: Définit le nom de fichier souhaité pour le téléchargement.Amélioration du chemin de fichier et de la gestion des noms
Pour éviter des problèmes potentiels liés à la concaténation des chemins et aux traits de soulignement, une approche plus robuste implique des paramètres distincts pour le chemin et le nom du fichier :
<code class="language-csharp">public FileResult Download(string filePath, string fileName) { byte[] fileBytes = GetFile(filePath); // Helper function to read file bytes return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName); } private byte[] GetFile(string filePath) { return System.IO.File.ReadAllBytes(filePath); }</code>
Cette méthode révisée améliore la sécurité et la lisibilité en séparant clairement le chemin et le nom du fichier. La fonction d'assistance GetFile
améliore l'organisation du code. Cette approche offre un moyen plus flexible et sécurisé de gérer les téléchargements de fichiers dans les applications ASP.NET MVC.
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!