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!