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
Libérer: 2025-01-27 06:51:10
original
770 Les gens l'ont consulté

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>
    Copier après la connexion
  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>
    Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal