在通过http请求发送之前,我尝试压缩文件列表。但是我被困在这里。
LISTAGG(Y,',')WITHINGROUP(ORDERBYYDESC)
------------------------------------------------------
2019,2018,2017,2016,2015,2014,2013,2012,2011,2010,2009
}
基本上,该函数接收文件列表,然后尝试将它们压缩为一个.zip文件。但是当我将其作为格式数据发送出去时,它给出了错误,即提交的数据不是文件。
我检查了标头中的有效载荷,并且目标字段为export default function zipTargetFiles(files) {
if (files.length <= 1) {
return files;
} else {
const zip = require('jszip')();
for (let i = 0; i < files.length; i++) {
zip.file(files[i].name, files[i]);
}
return zip.generateAsync({type:"blob"});
}
。如何真正返回.zip文件?
现在,我可以在Redux-saga中捕获该zip文件,但是当我将其保存在数据库中时,它没有给出扩展名,而是仅将其命名为“ blob”。
saga.js
[object Promise]
答案 0 :(得分:1)
要下载并命名.zip文件夹,您将需要file-saver中的saveAs()
import { saveAs } from "file-saver";
zip
.generateAsync({
type: "blob"
})
.then(content => {
saveAs(content, "fileName.zip");
});
答案 1 :(得分:0)
发生的事情是.generateAsync
正在返回承诺。您将必须等到诺言兑现或被兑现之后,才能使用数据。
Promise是使用异步操作时JS中的核心概念。您可以阅读有关承诺here
的更多信息import zipTargetFiles from '/path'
zipTargetFiles( data ).then(file => {
// Access your file here
})