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

Bagaimana untuk Mengembalikan Fail (cth., PDF) daripada Pengawal API Web ASP.NET?

Susan Sarandon
Lepaskan: 2025-01-18 17:22:09
asal
874 orang telah melayarinya

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

Menyajikan Fail daripada Pengawal API Web ASP.NET

Walaupun pengawal MVC mudah menggunakan FileContentResult untuk menghantar fail seperti PDF, ApiControllers memerlukan pendekatan yang berbeza. Jenis pemulangan IHttpActionResult tipikal tidak direka untuk penghantaran fail.

Mengatasi Masalah Biasa

Penggunaan StreamContent secara langsung selalunya gagal, menyebabkan penyemak imbas memaparkan metadata dan bukannya fail sebenar.

Kaedah ByteArrayContent Yang Berkesan

Kaedah yang paling boleh dipercayai melibatkan penukaran fail kepada tatasusunan bait dan menggunakan ByteArrayContent. Ini memastikan penghantaran fail yang betul.

Contoh Kod: Mengembalikan PDF

Contoh ini menunjukkan penjanaan dan pengembalian PDF daripada 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>
Salin selepas log masuk

Pendekatan ini menjamin penghantaran fail yang berjaya, membolehkan pelanggan (penyemak imbas atau pengguna API lain) memuat turun dan melihat fail dengan betul.

Atas ialah kandungan terperinci Bagaimana untuk Mengembalikan Fail (cth., PDF) daripada Pengawal 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