gpt4 book ai didi

django - 从 ReactJs/Axios 下载的 Zip 文件已损坏

转载 作者:行者123 更新时间:2023-12-03 13:22:07 24 4
gpt4 key购买 nike

我正在尝试从 Django api 下载 zip 文件并让用户下载它。 zip 中有两个 .csv 文件。

我可以单独下载单个 .csv 文件,但是当我尝试下载 zip 并解压缩时,出现 zip 已损坏的错误。为了进行健全性检查,我可以通过 postman 发送请求。我能够使用它成功下载并解压缩文件。

这是我的代码片段:

        axios
.post('http://0.0.0.0:8000/sheets/', data,
{
headers: {
'Content-Type': 'multipart/form-data',
'responseType': 'arraybuffer'
}
})
.then(res => {
console.log(res.data)
const disposition = res.request.getResponseHeader('Content-Disposition')
var fileName = "";
var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
var matches = filenameRegex.exec(disposition);
if (matches != null && matches[1]) {
fileName = matches[1].replace(/['"]/g, '');
}
let blob = new Blob([res.data], { type: 'application/zip' })

const downloadUrl = URL.createObjectURL(blob)
let a = document.createElement("a");
a.href = downloadUrl;
a.download = fileName;
document.body.appendChild(a);
a.click();

最佳答案

要添加到 btbam91 的回复:responseType 必须是配置的一部分。在上面的例子中:

 axios
.post('http://0.0.0.0:8000/sheets/', data,
{
responseType: 'arraybuffer',
headers: {
'Content-Type': 'multipart/form-data',
}
})

关于django - 从 ReactJs/Axios 下载的 Zip 文件已损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54414054/

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