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

Wie gebe ich ein Dateiinhaltsergebnis von einer ASP.NET-Web-API zurück?

Patricia Arquette
Freigeben: 2025-01-18 17:26:09
Original
925 Leute haben es durchsucht

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

Zurückgeben von Dateiinhaltsergebnissen in die ASP.NET-Web-API

Während FileContentResult in MVC-Controllern gut zum Bereitstellen von Dateien wie PDFs funktioniert, stellt die direkte Portierung auf ein ApiController Herausforderungen dar. Ein einfacher Versuch, StreamContent zu verwenden, schlägt häufig fehl und führt zu JSON-Metadaten anstelle der Datei selbst. Die Lösung liegt in der Nutzung von ByteArrayContent.

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

<code class="language-csharp">[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;
    }
}</code>
Nach dem Login kopieren

Der Schlüssel besteht darin, ByteArrayContent zu verwenden, um die Bytes der Datei zu kapseln und den ContentDisposition-Header auf „attachment“ zu setzen, um einen Download zu veranlassen. Der ContentType-Header gewährleistet die ordnungsgemäße Handhabung durch den Client. Beachten Sie die Verwendung von using, um sicherzustellen, dass das MemoryStream ordnungsgemäß entsorgt wird. Dieser Ansatz ermöglicht die nahtlose Bereitstellung von PDFs und anderen Dateitypen über Ihre Web-API.

Das obige ist der detaillierte Inhalt vonWie gebe ich ein Dateiinhaltsergebnis 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