„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich ein Dateiinhaltsergebnis aus einer ASP.NET -Web -API zurückgeben?

Wie kann ich ein Dateiinhaltsergebnis aus einer ASP.NET -Web -API zurückgeben?

Gepostet am 2025-03-22
Durchsuche:149

How to Return a File Content Result from an ASP.NET Web API?

Rückgabe der Dateiinhalte Ergebnisse in ASP.net Web API

während fileContentresult funktioniert in MVC -Controllern gut für das Servieren von Dateien wie PDFs und portiert dies direkt an eine apicontroller vor Herausforderungen. Ein einfacher Versuch, StreamContent zu verwenden, schlägt häufig fehl, was zu JSON -Metadaten anstelle der Datei selbst führt. Die Lösung liegt in der Nutzung von bytearrayContent .

Dieser überarbeitete Code -Snippet gibt effektiv eine PDF -Datei als Dateiinhaltsergebnis aus einer Web -API zurück:

[HttpGet]
public HttpResponseMessage Generate()
{
    using (var stream = new MemoryStream())
    {
        // Process the stream to generate PDF content here...

        var result = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new ByteArrayContent(stream.ToArray())
        };
        result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
        {
            FileName = "CertificationCard.pdf"
        };
        result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
        return result;
    }
}

Der Schlüssel verwendet bytearrayContent , um die Bytes der Datei zu komprilen und den contentDisposition Header in "Anhang" zu setzen, um einen Download aufzunehmen. Der contentType Header sorgt für die ordnungsgemäße Handhabung des Kunden. Beachten Sie die Verwendung von mit , um sicherzustellen, dass die memorstream ordnungsgemäß entsorgt wird. Dieser Ansatz ermöglicht eine nahtlose Zustellung von PDFs und anderen Dateitypen über Ihre Web -API.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3