Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengembalikan Fail daripada API Web Teras ASP.Net Tanpa Pemformatan JSON?

Bagaimana untuk Mengembalikan Fail daripada API Web Teras ASP.Net Tanpa Pemformatan JSON?

Barbara Streisand
Barbara Streisandasal
2024-10-31 18:16:02392semak imbas

How to Return Files from ASP.Net Core Web API Without JSON Formatting?

Memulangkan Fail dalam API Web Teras ASP.Net

Masalah:

Pengawal API Web selalunya memerlukan keupayaan untuk memulangkan fail. Walau bagaimanapun, pengguna mungkin menghadapi masalah apabila HttpResponseMessage yang dikembalikan diformatkan sebagai JSON, walaupun langkah diambil untuk menetapkan ContentType sebagai strim aplikasi/oktet.

Penyelesaian:

Dalam Teras ASP.Net, menggunakan antara muka IActionResult untuk tindakan menangani isu ini. Rangka kerja mentafsirkan HttpResponseMessage sebagai model dengan pendekatan ini.

Begini cara untuk melaksanakannya:

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

        if (stream == null)
            return NotFound(); // Returns a NotFoundResult with Status404NotFound response.

        return File(stream, "application/octet-stream", $"{filename.ext}"); // Returns a FileStreamResult
    }
}</code>

Nota:

Rangka kerja akan secara automatik buang aliran selepas tindak balas selesai. Menggunakan pernyataan penggunaan lebih awal akan menghasilkan pengecualian atau respons yang rosak.

Atas ialah kandungan terperinci Bagaimana untuk Mengembalikan Fail daripada API Web Teras ASP.Net Tanpa Pemformatan JSON?. 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