在 react js 中下载/保存文件

IT技术 javascript excel reactjs
2021-05-23 22:26:28

如何保存来自 api 的响应,该响应为我提供了带有数据和名称的 excel 文件?

我有下面的 api,它给了我 excel 文件,我必须按原样将它保存在默认位置。

https://mydomain.dev.com/export

我已经浏览了网络上的多篇文章,但到处都解释了将数据保存为客户端的 excel 文件,这不是我的情况。对我来说,文件类型和名称已经在服务器端决定,我必须按原样保存。

非常感谢提前

2个回答

我通常是这样处理的:

我首先获取文件,然后使用downloadjs下载 blob

async downloadFile() {
  const res = await fetch("https://mydomain.dev.com/export");
  const blob = res.blob();

  // from downloadjs it will download your file
  download(blob, "file.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");  
}

我总是使用这个脚本来做到这一点:

 function downloadFile(absoluteUrl) {
    var link = document.createElement('a');
    link.href = absoluteUrl;
    link.download = 'true';
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
    delete link;
 };

所以就 :

downloadFile("https://mydomain.dev.com/export");

它正在工作,但我希望有更好的解决方案。