Maison > développement back-end > C++ > le corps du texte

Comment renvoyer des fichiers à partir d'un contrôleur API Web ASP.NET Core ?

Barbara Streisand
Libérer: 2024-11-01 04:14:02
original
253 Les gens l'ont consulté

How to Return Files from an ASP.NET Core Web API Controller?

Traitement des téléchargements de fichiers dans l'API Web ASP.NET Core

Lorsque vous essayez de renvoyer un fichier à partir d'un contrôleur d'API Web ASP.NET, vous pouvez rencontrer des problèmes avec le réponse étant traitée comme JSON. Pour résoudre ce problème, il est essentiel de comprendre l'approche correcte du téléchargement de fichiers dans ASP.NET Core.

Pour renvoyer un fichier dans l'API Web ASP.NET Core, vous devez renvoyer un IActionResult dérivé au lieu de HttpResponseMessage. Le framework interprétera HttpResponseMessage comme un modèle, conduisant au problème de réponse JSON.

Vous trouverez ci-dessous un exemple de code mis à jour qui montre comment renvoyer un fichier à l'aide de IActionResult :

<code class="csharp">[Route("api/[controller]")]
public class DownloadController : Controller
{
    // GET api/download/12345abc
    [HttpGet("{id}")]
    public async Task<IActionResult> Download(string id)
    {
        Stream stream = await GetStreamBasedOnIdAsync(id);

        if (stream == null)
            return NotFound(); // Returns a NotFoundResult with Status404NotFound response

        return File(stream, "application/octet-stream", $"{FileName}.{FileExtension}"); // Returns a FileStreamResult
    }
}</code>
Copier après la connexion

Remarque : N'utilisez pas d'instruction using pour le flux ; sinon, il sera supprimé avant l'envoi de la réponse, ce qui entraînera une exception ou une réponse corrompue. Le framework gérera automatiquement la suppression du flux une fois la réponse terminée.

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