Maison >développement back-end >C++ >Comment puis-je implémenter des téléchargements de fichiers polyvalents dans ASP.NET MVC à l'aide de FileResult ?
Utilisation de FileResult dans ASP.NET MVC pour implémenter des téléchargements de fichiers flexibles
Dans les applications ASP.NET MVC, FileResult fournit une solution élégante de téléchargement de fichiers. Bien qu’il soit couramment utilisé pour télécharger des images, ses fonctionnalités s’étendent à tous les types de fichiers.
Déterminer le type de fichier
Si le type de fichier ne peut pas être déterminé à l'avance, le .NET Framework fournit un flux d'octets de type MIME universel, qui représente un flux de données binaires universel. Ce type peut prendre en charge une variété de formats de fichiers.
Implémentation personnalisée avec FileResult
Bien qu'une classe personnalisée comme BinaryContentResult puisse obtenir l'effet souhaité, FileResult est l'approche recommandée. Il fournit une solution standardisée et concise et est largement pris en charge par le .NET Framework.
Mise en œuvre du code
Pour télécharger tout type de fichier à l'aide de FileResult, vous pouvez utiliser l'extrait de code suivant :
<code class="language-csharp">public ActionResult Download(string filePath, string fileName) { string fullName = Path.Combine(GetBaseDir(), filePath, fileName); byte[] fileBytes = GetFile(fullName); return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName); }</code>
Fonction de récupération de fichiers personnalisée
La fonction GetFile se charge de récupérer le contenu binaire du fichier. Il ouvre le fichier sous forme de flux, lit les octets dans un tampon et renvoie le tampon.
Exemple de code complet
Le code exécutable complet (y compris la fonction GetFile personnalisée) est le suivant :
<code class="language-csharp">public ActionResult Download(string filePath, string fileName) { string fullName = Path.Combine(GetBaseDir(), filePath, fileName); byte[] fileBytes = GetFile(fullName); return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName); } byte[] GetFile(string s) { using (System.IO.FileStream fs = System.IO.File.OpenRead(s)) { byte[] data = new byte[fs.Length]; int br = fs.Read(data, 0, data.Length); if (br != fs.Length) throw new System.IO.IOException(s); return data; } }</code>
Grâce à cette approche, les développeurs peuvent activer de manière transparente le téléchargement de n'importe quel type de fichier dans leurs applications ASP.NET MVC, fournissant ainsi un mécanisme pratique et fiable pour le transfert de fichiers. Notez que l'instruction using
a été ajoutée à l'exemple de code pour garantir que le flux de fichiers est correctement fermé afin d'éviter les fuites de ressources.
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!