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!