我正在尝试打开根据
GET
请求发送给我的下载的 zip 文件。我正在使用 axios
来处理我的 api 请求。
问题
文件已下载。但我无法提取或打开它。空存档问题。
我用的是什么?
这是我的响应处理程序:
const data = response.data
const url = window.URL.createObjectURL(new Blob([data]));
const link = document.createElement("a");
link.href = url;
link.setAttribute("download", `report.zip`);
document.body.appendChild(link);
link.click();
link.parentNode.removeChild(link);
Postman
进行测试。能够下载并使用该 zip 中的文件。csv
文件类型。 我怀疑那件事。请分享可能是什么问题。
Blob
。这是我用来通过 Ajax 下载文件的函数。还有一个针对 Internet Explorer/Edge 的特殊路径,因为它会阻止合成链接点击。
type
因此您可以在代码中使用它,如下所示:
const downloadFile = (data, filename, type = "application/zip") => {
const blob = new Blob([data], { type })
if(navigator.msSaveBlob) {
window.navigator.msSaveBlob(blob,filename)
} else {
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a')
link.href = url
link.setAttribute('download', filename)
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
}
}