gpt4 book ai didi

javascript - 我如何使用 axios 下载包含多种类型文件的 zip

转载 作者:搜寻专家 更新时间:2023-10-30 22:20:15 25 4
gpt4 key购买 nike

在我的 vueJs 应用程序中,我有以下 axios POST api 调用,它假设返回多个我希望保存在 .zip 文件夹中的文件。但是,当我使用以下 axios 方法时,我无法打开我的 zip 并且出现错误,提示“我的 folder.zip 无效”。

如何正确下载 response.data?

这是方法。我在我的原始调用正文中发送了一些需要的信息和一个需要上传的文件,这样我就可以获得我需要下载的其他文件。

upload() {
console.log("uploading")
let formData = new FormData();
let gerarMenus = "on";
let zipName= "test";
let var1= "on";
let var2= "on";
let var3= "on";
let var4= "on";
this.files.forEach((f,x) => {
formData.append('file'+(x+1), f);

});
formData.append('zipName', zipName);
formData.append('var1', var1);
formData.append('var2', var2);
formData.append('var3', var3);
formData.append('var4', var4);

axios
.post("/myUrl/downloadFile", formData)
.then((response) => {
console.log(response.data)
const url = window.URL.createObjectURL(new Blob([response]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', zipName+ '.zip');
document.body.appendChild(link);
link.click()}
).catch(e => {
console.error(e);
});

编辑:我尝试了 tony19 的回答,但我仍然遇到同样的错误。不确定它是否有任何帮助,但我想获得多个 xml 和 sql 文件。

EDIT2:这是我的 console.log() 中 response.data 的打印: enter image description here

最佳答案

在这一行中:

const url = window.URL.createObjectURL(new Blob([response])); // DON'T DO THIS
^^^^^^^^

...您正在为整个 Axios response object 的 blob 创建一个对象 URL (包括 HTTP 状态代码、 header 等),但您实际上希望其中包含 data 属性,如下所示:

const url = window.URL.createObjectURL(new Blob([response.data]));

关于javascript - 我如何使用 axios 下载包含多种类型文件的 zip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57437531/

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