美好的一天,伙计们,我正在尝试从 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();
});
人到中年有点甜
TA贡献1895条经验 获得超7个赞
这是 :
[HttpPost]
[Route("")]
public FileContentResult Download()
{
...
return File("thisFile");
}
- 2 回答
- 0 关注
- 98 浏览
添加回答
举报
0/150
提交
取消