为了账号安全,请及时绑定邮箱和手机立即绑定

从 Axios 请求返回 ASP.NET Core API 中的下载文件

从 Axios 请求返回 ASP.NET Core API 中的下载文件

C#
PIPIONE 2022-10-23 13:31:58
美好的一天,伙计们,我正在尝试从 Axios 请求的 ASP.NET Core Web API 下载文件。这是我的示例 API 方法。(基于此stackoverflow 问题的代码)[HttpPost("download")]public async Task<IActionResult> DownloadFile(){    ...    return File(new MemoryStream(mypdfbyte), "application/octet-stream", "myfile.pdf");}这是我的示例 axios 请求。axios.post(`api/products/download`).then(response=>{    console.log(response.data)}).catch(error=>{ console.log(error) })但我只收到这个。没有下载文件出现。我希望你能帮我从我的控制器 api 下载一个文件。
查看完整描述

2 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

首先,DownloadFile 应该是 HttpGet 而不是 HttpPost。然后你的 axios 请求应该看起来像


axios({

  url: 'http://localhost:5000/api/products/download',

  method: 'GET',

  responseType: 'blob', // important

}).then((response) => {

  const url = window.URL.createObjectURL(new Blob([response.data]));

  const link = document.createElement('a');

  link.href = url;

  link.setAttribute('download', 'file.pdf');

  document.body.appendChild(link);

  link.click();

});


查看完整回答
反对 回复 2022-10-23
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

这是 :


    [HttpPost]

    [Route("")]

    public FileContentResult Download()

    { 

    ... 

    return File("thisFile"); 

    }


查看完整回答
反对 回复 2022-10-23
  • 2 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信