Maison > développement back-end > C++ > Comment puis-je renvoyer un fichier sous forme de réponse binaire dans l'API Web ASP.Net Core ?

Comment puis-je renvoyer un fichier sous forme de réponse binaire dans l'API Web ASP.Net Core ?

Mary-Kate Olsen
Libérer: 2024-10-29 08:39:02
original
388 Les gens l'ont consulté

How Can I Return a File as a Binary Response in ASP.Net Core Web API?

Surmonter le problème de retour de fichier converti en JSON dans l'API Web ASP.Net Core

Dans l'API Web ASP.Net Core, renvoyer un fichier en tant que réponse JSON peut être gênant. Naturellement, vous voudriez renvoyer le fichier dans son format binaire d'origine. Pour résoudre ce problème, nous devons approfondir le concept de types de résultats dans ASP.Net Core.

Comprendre l'interface IActionResult

Dans ASP.Net Core, IActionResult est une interface représentant le résultat d'une méthode d'action. Il encapsule le corps de la réponse HTTP et le code d'état, offrant ainsi une flexibilité dans la personnalisation de la réponse.

Solution : renvoyer un FileStreamResult

Pour renvoyer un fichier, nous exploiterons le Classe FileStreamResult, qui implémente IActionResult. Cela nous permet de spécifier le flux de fichier, le type de contenu et le nom de fichier de la réponse.

L'extrait de code suivant illustre cette approche :

<code class="csharp">[Route("api/[controller]")]
public class DownloadController : Controller
{
    [HttpGet("{id}")]
    public async Task<IActionResult> Download(string id)
    {
        Stream stream = await // Get stream based on id here

        if (stream == null)
            return NotFound(); // Handle not found scenario

        return File(stream, "application/octet-stream", "filename.ext");
    }
}</code>
Copier après la connexion

Dans ce code :

  • File() crée un FileStreamResult avec le flux, le type de contenu et le nom de fichier spécifiés.
  • Le framework définit automatiquement le code d'état de la réponse HTTP sur 200 OK.
  • Le framework dispose de le flux lorsque la réponse est complète pour éviter les exceptions.

Remarque :

  • Si vous utilisez une instruction using sur le flux dans la méthode Download , le flux peut être supprimé avant l'envoi de la réponse, entraînant une erreur.
  • L'appel NotFound() renvoie un NotFoundResult avec un code d'état HTTP de 404 Not Found.

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