Maison > développement back-end > C++ > Comment contrôler l'affichage du fichier (voir ou télécharger) dans ASP.NET MVC?

Comment contrôler l'affichage du fichier (voir ou télécharger) dans ASP.NET MVC?

Barbara Streisand
Libérer: 2025-01-31 13:56:09
original
899 Les gens l'ont consulté

How to Control File Display (View or Download) in 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:

// Opens known types, downloads unknown types (incorrect filename/extension)
return new FileStreamResult(new MemoryStream(document.Data), document.ContentType);
Copier après la connexion

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é:

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

Pour améliorer le support international des caractères, la classe ContentDispositionHeaderValue est recommandée:

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

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!

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