Heim > Backend-Entwicklung > C++ > Hauptteil

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

Barbara Streisand
Freigeben: 2024-11-01 04:14:02
Original
187 Leute haben es durchsucht

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

Umgang mit Dateidownloads in der ASP.NET Core-Web-API

Beim Versuch, eine Datei von einem ASP.NET-Web-API-Controller zurückzugeben, können Probleme mit dem auftreten Die Antwort wird als JSON behandelt. Um dieses Problem zu beheben, ist es wichtig, den richtigen Ansatz zum Herunterladen von Dateien in ASP.NET Core zu verstehen.

Um eine Datei in der ASP.NET Core-Web-API zurückzugeben, müssen Sie ein abgeleitetes IActionResult anstelle von HttpResponseMessage zurückgeben. Das Framework interpretiert HttpResponseMessage als Modell, was zum JSON-Antwortproblem führt.

Unten finden Sie ein aktualisiertes Codebeispiel, das zeigt, wie eine Datei mit IActionResult zurückgegeben wird:

<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>
Nach dem Login kopieren

Hinweis:Verwenden Sie keine using-Anweisung für den Stream; Andernfalls wird es verworfen, bevor die Antwort gesendet wurde, was zu einer Ausnahme oder einer beschädigten Antwort führt. Das Framework übernimmt die Stream-Entsorgung automatisch, wenn die Antwort abgeschlossen ist.

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!