Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengembalikan FileContentResult (PDF) daripada API Web ASP.NET?

Bagaimana untuk Mengembalikan FileContentResult (PDF) daripada API Web ASP.NET?

Patricia Arquette
Lepaskan: 2025-01-18 17:31:09
asal
886 orang telah melayarinya

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

Memulangkan Fail PDF daripada API Web ASP.NET

Dalam pengawal MVC standard, mengembalikan PDF menggunakan FileContentResult adalah mudah. Walau bagaimanapun, ApiController memerlukan pendekatan yang berbeza.

Masalahnya

Menggunakan IHttpActionResult jenis pulangan biasa dalam ApiController memberikan cabaran apabila mengembalikan PDF. Hanya mengembalikan StreamContent, seperti yang dicadangkan oleh beberapa contoh, selalunya menyebabkan penyemak imbas memaparkan pengepala dan bukannya fail PDF itu sendiri.

Kaedah Yang Betul

Kuncinya ialah menggunakan ByteArrayContent dan bukannya StreamContent. Ini menukar data aliran kepada tatasusunan bait untuk penghantaran yang betul. Berikut ialah contoh yang dipertingkatkan:

<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>
Salin selepas log masuk

Kod ini menggunakan ByteArrayContent untuk menghantar PDF sebagai tatasusunan bait. Yang penting, ia menetapkan pengepala ContentDisposition kepada attachment (memberitahu penyemak imbas untuk memuat turun fail) dan ContentType kepada application/octet-stream (menunjukkan fail binari). Ini memastikan PDF dimuat turun dengan betul dan bukannya dipaparkan dalam penyemak imbas.

Atas ialah kandungan terperinci Bagaimana untuk Mengembalikan FileContentResult (PDF) daripada API Web ASP.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan