Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengembalikan Hasil Kandungan Fail daripada API Web ASP.NET?

Bagaimana untuk Mengembalikan Hasil Kandungan Fail daripada API Web ASP.NET?

Patricia Arquette
Patricia Arquetteasal
2025-01-18 17:26:09988semak imbas

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

Memulangkan Keputusan Kandungan Fail dalam API Web ASP.NET

Walaupun FileContentResult berfungsi dengan baik dalam pengawal MVC untuk menyiarkan fail seperti PDF, mengalihkannya terus ke ApiController memberikan cabaran. Percubaan mudah untuk menggunakan StreamContent selalunya gagal, mengakibatkan metadata JSON dan bukannya fail itu sendiri. Penyelesaiannya terletak pada memanfaatkan ByteArrayContent.

Coretan kod yang disemak ini dengan berkesan mengembalikan fail PDF sebagai hasil kandungan fail daripada API Web:

<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>

Kuncinya menggunakan ByteArrayContent untuk merangkum bait fail dan menetapkan pengepala ContentDisposition kepada "lampiran" untuk menggesa muat turun. Tajuk ContentType memastikan pengendalian yang betul oleh pelanggan. Perhatikan penggunaan using untuk memastikan MemoryStream dilupuskan dengan betul. Pendekatan ini membolehkan penghantaran PDF dan jenis fail lain yang lancar melalui API Web anda.

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

Kenyataan:
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