ASP.NET Web API コントローラーからのファイルの提供
MVC コントローラーは FileContentResult
を使用して PDF などのファイルを送信しますが、ApiControllers
には別のアプローチが必要です。 一般的な IHttpActionResult
戻り値の型は、ファイル配信用に設計されていません。
よくある落とし穴への対処
StreamContent
を直接使用すると、多くの場合失敗し、ブラウザーに実際のファイルの代わりにメタデータが表示されます。
効果的な ByteArrayContent
方法
最も信頼性の高い方法は、ファイルをバイト配列に変換し、ByteArrayContent
を使用することです。これにより、適切なファイル配信が保証されます。
コード例: PDF を返す
この例では、:ApiController
から PDF を生成して返す方法を示します。
<code class="language-csharp">[HttpGet] public HttpResponseMessage Generate() { using (var stream = new MemoryStream()) { // ... PDF generation logic using stream ... 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>
以上がASP.NET Web API コントローラーからファイル (PDF など) を返す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。