Maison >développement back-end >C++ >Comment gérer les téléchargements de fichiers de types inconnus dans ASP.NET MVC à l'aide de FileResult ?

Comment gérer les téléchargements de fichiers de types inconnus dans ASP.NET MVC à l'aide de FileResult ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-27 06:51:10832parcourir

How to Handle File Downloads of Unknown Types in ASP.NET MVC using FileResult?

Utilisation de FileResult dans ASP.NET MVC pour télécharger des fichiers de type inconnu

Lors de l'activation des téléchargements de fichiers dans ASP.NET MVC, il est généralement recommandé d'utiliser FileResult comme méthode préférée. Cependant, la plupart des exemples se concentrent sur le téléchargement de fichiers image avec un type de contenu spécifique (tel que « image/jpeg »).

Un problème survient si le type de fichier est inconnu et que vous souhaitez autoriser les utilisateurs à télécharger différents formats de fichiers : le nom du fichier téléchargé peut être concaténé avec des traits de soulignement du chemin du fichier, ce qui peut ne pas être idéal. De plus, certaines personnes préfèrent renvoyer un FileResult au lieu d'utiliser une classe personnalisée telle que « BinaryContentResult ».

Méthode recommandée

Afin de résoudre ces problèmes et de mettre en œuvre le mécanisme de téléchargement correct, veuillez suivre ces étapes :

  1. Utilisez le type MIME générique de flux d'octets :

    Pour les fichiers de type inconnu, spécifiez le type MIME générique "Application/Octet-Stream" pour indiquer que le fichier peut être dans n'importe quel format.

  2. Définir l'opération de téléchargement :

    Dans votre contrôleur MVC, créez une méthode d'action pour gérer le téléchargement du fichier, par exemple :

    <code class="language-csharp">public FileResult Download(string filePath, string fileName)
    {
        // 从指定位置或流获取文件字节
        byte[] fileBytes = GetFileBytes(filePath);
    
        // 使用指定的字节、MIME类型和文件名返回FileResult
        return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
    }</code>
  3. Récupérer les octets du fichier :

    Implémentez une méthode qui récupère les octets du fichier en fonction d'un chemin de fichier fourni ou d'autres moyens, par exemple :

    <code class="language-csharp">private byte[] GetFileBytes(string filePath)
    {
        return System.IO.File.ReadAllBytes(filePath);
    }</code>

Exemple de code :

Voici un exemple d'extrait de code illustrant l'approche :

<code class="language-csharp">public ActionResult 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>

Avec cette méthode, vous pouvez télécharger n'importe quel type de fichier tout en conservant le nom de fichier souhaité et en utilisant le type MIME approprié dans votre application 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn