"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment renvoyer un contenu de fichier Résultat d'une API Web ASP.NET?

Comment renvoyer un contenu de fichier Résultat d'une API Web ASP.NET?

Publié le 2025-03-22
Parcourir:617

How to Return a File Content Result from an ASP.NET Web API?

Retour des résultats du contenu de fichier dans ASP.net web api

tandis que fileContentResult fonctionne bien dans les contrôleurs MVC pour servir des fichiers comme PDFS, le portant directement à un apiController présente des défis. Une tentative simple d'utiliser StreamContent échoue souvent, résultant en des métadonnées JSON au lieu du fichier lui-même. La solution réside dans la mise à profit bytearrayContent .

Cet extrait de code révisé renvoie efficacement un fichier PDF en tant que contenu de fichier Résultat d'une API Web:

[HttpGet]
public HttpResponseMessage Generate()
{
    using (var stream = new MemoryStream())
    {
        // Process the stream to generate PDF content here...

        var result = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new ByteArrayContent(stream.ToArray())
        };
        result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
        {
            FileName = "CertificationCard.pdf"
        };
        result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
        return result;
    }
}

La clé utilise byteArrayContent pour encapsuler les octets du fichier et définir l'en-tête de contenudisposition de contenu pour inviter un téléchargement. L'en-tête ContentType garantit une manipulation appropriée par le client. Remarque l'utilisation de en utilisant pour s'assurer que le memmorStream est correctement disposé. Cette approche permet la livraison transparente de PDF et d'autres types de fichiers via votre API Web.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3