Maison  >  Article  >  développement back-end  >  Comment renvoyer des fichiers à partir d’une API Web ASP.NET Core ?

Comment renvoyer des fichiers à partir d’une API Web ASP.NET Core ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-01 09:20:02208parcourir

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

Télécharger des fichiers dans les API Web ASP.NET Core

Le retour de fichiers à partir d'une API Web ASP.NET Core peut être difficile, car le comportement par défaut entraîne souvent la sérialisation du HttpResponseMessage au format JSON. Pour résoudre ce problème, nous devons utiliser une approche différente.

Dans l'extrait de code fourni, l'interface IActionResult doit être utilisée pour renvoyer un type ActionResult dérivé. En renvoyant un FileStreamResult, nous pouvons spécifier le type de contenu et le nom du fichier à télécharger.

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

        if (stream == null)
            return NotFound();

        return File(stream, "application/octet-stream", $"{filename}.ext");
    }
}</code>

Dans ce code mis à jour :

  • L'interface IActionResult est implémentée.
  • FileStreamResult est utilisé pour renvoyer le fichier.
  • Définissez le type de contenu et le nom du fichier téléchargé.

Cette méthode garantit que HttpResponseMessage contient le type de contenu correct et le nom du fichier, permettant des téléchargements de fichiers transparents à partir de votre API Web.

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