首页 / 问答 / [ASP.NET Core]ASP.NET Core/.NET 5应用程序编程中如何从Web API控制器中返回文件?

[ASP.NET Core]ASP.NET Core/.NET 5应用程序编程中如何从Web API控制器中返回文件?

0

在ASP.Net Web API的应用程序接口服务开发中,有时候需要从Web API控制器的Action方法返回文件,但是使用以下的HttpResponseMessage方法返回的总是JSON:

public async Task<HttpResponseMessage> DownloadAsync(string id)
{
    var response = new HttpResponseMessage(HttpStatusCode.OK);
    response.Content = new StreamContent({{__insert_stream_here__}});
    response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
    return response;
}

将这个接口对应的地址在浏览器中打开时,返回的不是文件而是JSON数据。是哪里出现了问题,又应该如何实现在ASP.NET Core/.NET 5应用程序中从Web API控制器中返回文件呢?

回复 [×]
提交评论
请输入评论内容

2 个回答

  • 0

    你也可以返回FileResult类型。

    1. 返回FileStreamResult的文件流结果:

    请使用命名空间Microsoft.AspNetCore.Mvc中的FileStreamResult,而不是命名空间System.Web.Mvc中的FileStreamResult

    1. 返回FileContentResult的文件内容结果:

    Rector的个人主页

    Rector

    2021-03-19 回答

    • 0

      在ASP.NET Core的接口服务应用中,你可以返回IActionResult,示例代码如下:

      Rector的个人主页

      Rector

      2021-03-19 回答

      我来回答