Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengembalikan Fail sebagai ByteContent dalam API Web ASP.NET?

Bagaimana untuk Mengembalikan Fail sebagai ByteContent dalam API Web ASP.NET?

Patricia Arquette
Lepaskan: 2025-01-18 17:36:11
asal
210 orang telah melayarinya

How to Return Files as ByteContent in ASP.NET Web API?

Memulangkan Fail sebagai Tatasusunan Byte dalam API Web ASP.NET

Artikel ini menunjukkan cara mengembalikan fail sebagai tatasusunan bait dengan berkesan dalam API Web ASP.NET. FileContentResult, yang biasa digunakan dalam MVC, tidak boleh digunakan secara langsung di sini.

Cabaran:

Memulangkan fail PDF (atau jenis fail lain) secara langsung daripada ApiController menggunakan kaedah yang direka untuk MVC selalunya menghasilkan hasil yang tidak dijangka.

Penyelesaian:

Kuncinya ialah mengendalikan fail sebagai tatasusunan bait. Ini melibatkan beberapa langkah:

  1. Penukaran Tatasusunan Strim ke Bait: Baca fail ke dalam strim dan kemudian tukar strim itu kepada tatasusunan bait.

  2. ByteArrayContent Creation: Gunakan kelas ByteArrayContent, melepasi tatasusunan bait yang diperoleh dalam langkah sebelumnya.

  3. Pengurusan Pengepala: Tetapkan pengepala Content-Disposition dengan betul untuk menentukan nama fail untuk dimuat turun dan pengepala Content-Type untuk mengenal pasti jenis fail dengan betul (cth., "application/pdf" untuk PDF).

  4. HttpResponseMessage Construction: Pakej ByteArrayContent dalam objek HttpResponseMessage, tetapkan kod status HTTP yang sesuai (cth., HttpStatusCode.OK).

Contoh Kod:

<code class="language-csharp">[HttpGet]
public HttpResponseMessage Generate()
{
    using (var stream = new MemoryStream())
    {
        // ... Your file stream processing here ...  Populate the 'stream'

        var byteArray = stream.ToArray();
        var result = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new ByteArrayContent(byteArray)
        };
        result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
        {
            FileName = "CertificationCard.pdf"
        };
        result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); // Or application/pdf

        return result;
    }
}</code>
Salin selepas log masuk

Contoh yang disemak ini mempamerkan cara mengembalikan fail PDF (atau sebarang jenis fail) sebagai tatasusunan bait, lengkap dengan pengepala yang diperlukan. Pelanggan (pelayar) kini harus mengendalikan muat turun fail dengan betul. Ingat untuk menggantikan ulasan pemegang tempat // ... Your file stream processing here ... dengan logik pembacaan fail sebenar anda. Pertimbangkan untuk menggunakan pengepala Content-Type yang lebih khusus untuk keserasian penyemak imbas yang lebih baik.

Atas ialah kandungan terperinci Bagaimana untuk Mengembalikan Fail sebagai ByteContent dalam 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