Heim > Backend-Entwicklung > C++ > Wie kann ich Dateien (z. B. PDFs) von ASP.NET-Web-API-Controllern zurückgeben?

Wie kann ich Dateien (z. B. PDFs) von ASP.NET-Web-API-Controllern zurückgeben?

Susan Sarandon
Freigeben: 2025-01-18 17:22:09
Original
874 Leute haben es durchsucht

How to Return Files (e.g., PDFs) from ASP.NET Web API Controllers?

Bereitstellen von Dateien von ASP.NET-Web-API-Controllern

Während MVC-Controller FileContentResult problemlos zum Senden von Dateien wie PDFs verwenden, erfordert ApiControllers einen anderen Ansatz. Der typische Rückgabetyp IHttpActionResult ist nicht für die Dateiübermittlung konzipiert.

Behebung häufiger Fallstricke

Die direkte Verwendung von StreamContent schlägt häufig fehl und führt dazu, dass der Browser Metadaten anstelle der eigentlichen Datei anzeigt.

Die effektive ByteArrayContentMethode

Die zuverlässigste Methode besteht darin, die Datei in ein Byte-Array zu konvertieren und ByteArrayContent zu verwenden. Dies gewährleistet eine ordnungsgemäße Dateizustellung.

Codebeispiel: Zurückgeben einer PDF

Dieses Beispiel zeigt die Erstellung und Rückgabe einer PDF-Datei aus einem ApiController:

<code class="language-csharp">[HttpGet]
public HttpResponseMessage Generate()
{
    using (var stream = new MemoryStream())
    {
        // ... PDF generation logic using stream ...

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

Dieser Ansatz garantiert eine erfolgreiche Dateibereitstellung und ermöglicht es Clients (Browsern oder anderen API-Konsumenten), die Datei korrekt herunterzuladen und anzuzeigen.

Das obige ist der detaillierte Inhalt vonWie kann ich Dateien (z. B. PDFs) von ASP.NET-Web-API-Controllern zurückgeben?. 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