ASP.NET Core Web API からファイルを返すのは難しい場合があります。デフォルトの動作では、多くの場合、HttpResponseMessage が JSON としてシリアル化されます。この問題に対処するには、別のアプローチを利用する必要があります。
提供されたコード スニペットでは、IActionResult インターフェイスを使用して、派生した ActionResult 型を返す必要があります。 FileStreamResult を返すことで、ダウンロードするファイルのコンテンツ タイプとファイル名を指定できます。
<code class="csharp">[Route("api/[controller]")] public class DownloadController : Controller { [HttpGet("{id}")] public async Task<IActionResult> Download(string id) { Stream stream = await GetStreamBasedOnIdAsync(id); if (stream == null) return NotFound(); return File(stream, "application/octet-stream", $"{filename}.ext"); } }</code>
この更新されたコードでは、
このメソッドにより、HttpResponseMessage に正しいコンテンツ タイプが含まれるようになります。とファイル名を指定すると、Web API からのシームレスなファイルのダウンロードが可能になります。
以上がASP.NET Core Web API からファイルを返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。