Heim  >  Artikel  >  Backend-Entwicklung  >  Wie gebe ich Dateien von einer ASP.NET Core-Web-API zurück?

Wie gebe ich Dateien von einer ASP.NET Core-Web-API zurück?

Susan Sarandon
Susan SarandonOriginal
2024-11-01 09:20:02208Durchsuche

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

Dateien in ASP.NET Core-Web-APIs herunterladen

Das Zurückgeben von Dateien von einer ASP.NET Core-Web-API kann eine Herausforderung sein Das Standardverhalten führt häufig dazu, dass die HttpResponseMessage als JSON serialisiert wird. Um dieses Problem anzugehen, müssen wir einen anderen Ansatz verwenden.

Im bereitgestellten Codeausschnitt sollte die IActionResult-Schnittstelle verwendet werden, um einen abgeleiteten ActionResult-Typ zurückzugeben. Durch die Rückgabe eines FileStreamResult können wir den Inhaltstyp und den Dateinamen der herunterzuladenden Datei angeben.

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

In diesem aktualisierten Code:

  • Die IActionResult-Schnittstelle ist implementiert.
  • FileStreamResult wird verwendet, um die Datei zurückzugeben.
  • Legen Sie den Inhaltstyp und den Dateinamen für die heruntergeladene Datei fest.

Diese Methode stellt sicher, dass die HttpResponseMessage den richtigen Inhaltstyp enthält und Dateinamen, was nahtlose Dateidownloads von Ihrer Web-API ermöglicht.

Das obige ist der detaillierte Inhalt vonWie gebe ich Dateien von einer ASP.NET Core-Web-API zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn