Heim > Backend-Entwicklung > C++ > Wie gebe ich ein FileContentResult (PDF) von einer ASP.NET-Web-API zurück?

Wie gebe ich ein FileContentResult (PDF) von einer ASP.NET-Web-API zurück?

Patricia Arquette
Freigeben: 2025-01-18 17:31:09
Original
886 Leute haben es durchsucht

How to Return a FileContentResult (PDF) from an ASP.NET Web API?

Zurückgeben einer PDF-Datei von einer ASP.NET-Web-API

In Standard-MVC-Controllern ist die Rückgabe einer PDF-Datei mit FileContentResult einfach. ApiControllererfordert jedoch einen anderen Ansatz.

Das Problem

Die Verwendung des typischen Rückgabetyps IHttpActionResult in ApiController stellt bei der Rückgabe einer PDF-Datei eine Herausforderung dar. Die einfache Rückgabe eines StreamContent führt, wie einige Beispiele vermuten lassen, häufig dazu, dass der Browser Kopfzeilen anstelle der PDF-Datei selbst anzeigt.

Die richtige Methode

Der Schlüssel liegt darin, ByteArrayContent anstelle von StreamContent zu verwenden. Dadurch werden die Stream-Daten zur ordnungsgemäßen Übertragung in ein Byte-Array umgewandelt. Hier ist ein verbessertes Beispiel:

<code class="language-csharp">[HttpGet]
public HttpResponseMessage Generate()
{
    MemoryStream stream = new MemoryStream();
    // ... PDF generation code to populate the stream ...

    HttpResponseMessage 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;
}</code>
Nach dem Login kopieren

Dieser Code verwendet ByteArrayContent, um das PDF als Byte-Array zu senden. Entscheidend ist, dass der ContentDisposition-Header auf attachment gesetzt wird (womit der Browser angewiesen wird, die Datei herunterzuladen) und der ContentType auf application/octet-stream (was eine Binärdatei anzeigt). Dadurch wird sichergestellt, dass die PDF-Datei korrekt heruntergeladen und nicht im Browser gerendert wird.

Das obige ist der detaillierte Inhalt vonWie gebe ich ein FileContentResult (PDF) von einer ASP.NET-Web-API 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