如何使用Webapi Core在React中使用axios.post下载文件

时间:2019-04-29 10:31:03

标签: reactjs axios asp.net-core-webapi

我已使用此How to download files using axios.post from webapi(可能与此重复)在这种情况下工作,但我没有成功。

 React: 
   axios.post("URL",{data:data, responseType: "blob"})
  1. 作为回应,我得到的是损坏的数据,而不是字节。
  2. ResponseType可用于get请求,但为什么不能用于post?

WebAPI Core: return File(arraybytes, "application/vnd.openxmlformats- officedocument.spreadsheetml.sheet", "test.xlsx");

1 个答案:

答案 0 :(得分:0)

这是我如何能够下载托管在 S3 AWS 存储桶上的视频,

const handleDownload = () => {
    const link = document.createElement("a");
    link.target = "_blank";
    link.download = "YOUR_FILE_NAME"
    axios
      .get(url, {
        responseType: "blob",
      })
      .then((res) => {
        link.href = URL.createObjectURL(
          new Blob([res.data], { type: "video/mp4" })
        );
        link.click();
      });
  };

然后我使用 onClick 在按钮中触发 handleDownload 功能。

函数中的 url 包含来自 S3 存储桶的视频 URL