gpt4 book ai didi

javascript - 使用 javascript 打开下载的 zip 文件时出现问题

转载 作者:行者123 更新时间:2023-11-28 03:40:35 25 4
gpt4 key购买 nike

我正在尝试打开根据 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);
  1. API 运行良好。使用Postman进行测试。能够下载并使用该 zip 中的文件。
  2. 上述代码适用于 csv 文件类型。

我怀疑Blob的事情。请分享可能是什么问题。

最佳答案

我不是 100% 确定,但也许您只是缺少 blob 的类型。这是我用来通过 Ajax 下载文件的函数。 Internet Explorer/Edge 还有一个特殊的路径,因为它会阻止合成链接点击。

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)
}
}

因此您可以在代码中使用它:

const data = response.data
downloadFile(data, "report.zip")

关于javascript - 使用 javascript 打开下载的 zip 文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57331214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com