Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengembalikan Fail sebagai Respons Binari dalam API Web Teras ASP.Net?

Bagaimanakah Saya Boleh Mengembalikan Fail sebagai Respons Binari dalam API Web Teras ASP.Net?

Mary-Kate Olsen
Lepaskan: 2024-10-29 08:39:02
asal
387 orang telah melayarinya

How Can I Return a File as a Binary Response in ASP.Net Core Web API?

Mengatasi Isu Pemulangan Fail Tertukar JSON dalam API Web Teras ASP.Net

Dalam API Web Teras ASP.Net, mengembalikan fail sebagai respons JSON boleh menyusahkan. Maklumlah, anda ingin memulangkan fail dalam format binari asalnya. Untuk menyelesaikan isu ini, kita perlu menyelidiki konsep jenis hasil dalam Teras ASP.Net.

Memahami Antara Muka IActionResult

Dalam Teras ASP.Net, IActionResult ialah antara muka yang mewakili hasil kaedah tindakan. Ia merangkumi badan respons HTTP dan kod status, memberikan fleksibiliti dalam menyesuaikan respons.

Penyelesaian: Mengembalikan FileStreamResult

Untuk mengembalikan fail, kami akan memanfaatkan Kelas FileStreamResult, yang melaksanakan IActionResult. Ini membolehkan kami menentukan aliran fail, jenis kandungan dan nama fail untuk respons.

Coretan kod berikut menunjukkan pendekatan ini:

<code class="csharp">[Route("api/[controller]")]
public class DownloadController : Controller
{
    [HttpGet("{id}")]
    public async Task<IActionResult> Download(string id)
    {
        Stream stream = await // Get stream based on id here

        if (stream == null)
            return NotFound(); // Handle not found scenario

        return File(stream, "application/octet-stream", "filename.ext");
    }
}</code>
Salin selepas log masuk

Dalam kod ini:

  • Fail() mencipta FileStreamResult dengan strim, jenis kandungan dan nama fail yang ditentukan.
  • Rangka kerja secara automatik menetapkan kod status respons HTTP kepada 200 OK.
  • Rangka kerja melupuskan strim apabila respons selesai untuk mengelakkan pengecualian.

Nota:

  • Jika anda menggunakan pernyataan menggunakan pada strim dalam kaedah Muat Turun , strim mungkin dilupuskan sebelum balasan dihantar, yang membawa kepada ralat.
  • Panggilan NotFound() mengembalikan NotFoundResult dengan kod status HTTP 404 Not Found.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengembalikan Fail sebagai Respons Binari dalam API Web Teras 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