在 ASP.Net Core Web API 中返回文件
问题:
Web API 控制器通常需要返回文件的能力。但是,即使采取步骤将 ContentType 设置为 application/octet-stream,用户也可能会遇到返回的 HttpResponseMessage 格式为 JSON 的问题。
解决方案:
在 ASP.Net Core 中,利用 IActionResult 接口进行操作可以解决此问题。框架使用这种方法将 HttpResponseMessage 解释为模型。
实现方法如下:
<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>
注意:
框架会自动响应完成后处理流。过早使用 using 语句将导致异常或响应损坏。
以上是如何从 ASP.Net Core Web API 返回没有 JSON 格式的文件?的详细内容。更多信息请关注PHP中文网其他相关文章!