JSZip - 如何在不下载文件的情况下使用 generateAsync 命名文件
JSZip - how to name file with generateAsync without download it
早上好,我正在使用 JSZip 创建一个 zip,我有这个代码:
for (var i = 0, f; f = content[i]; i++) {
var zip = new JSZip();
zip.file(f.name, f);
zip.generateAsync({type:"blob", compression:"DEFLATE", compressionOptions: { level: 9 }})
.then(function(content) {
var item = {
'type' : content.type,
'size' : content.size,
//'name' : ¿content.name?
}
});
}
我不想下载文件,我想把它上传到我的服务器,但是它没有属性名称,它有两个属性:类型和大小。但是我需要为文件设置一个名称。
如果我写 'name' : f.name 它不起作用,因为函数是异步的。
有人知道如何将属性名称传递给内容吗?
编辑:或者,如果你能告诉我如何让它不异步,那也行。
感谢您的帮助。
使用这个解决了:
使用调用异步方法的函数,并接收 ZIP 和文件名。
function makeZip(zip, name) {
name = name.split('.')[0] + ".zip";
zip.generateAsync({type:"blob", compression:"DEFLATE", compressionOptions: { level: 9 }})
.then(function(content) {
// see FileSaver.js
console.log(content)
saveAs(content, name)
var item = {
'name': name,
'type': content.type,
'size': content.size,
'guid': generatorguid()
};
});
}
然后从 for:
调用它
for (var i = 0, f; f = content[i]; i++) {
var fZip = new JSZip();
fZip.file(f.name, f);
makeZip(fZip, f.name);
}
早上好,我正在使用 JSZip 创建一个 zip,我有这个代码:
for (var i = 0, f; f = content[i]; i++) {
var zip = new JSZip();
zip.file(f.name, f);
zip.generateAsync({type:"blob", compression:"DEFLATE", compressionOptions: { level: 9 }})
.then(function(content) {
var item = {
'type' : content.type,
'size' : content.size,
//'name' : ¿content.name?
}
});
}
我不想下载文件,我想把它上传到我的服务器,但是它没有属性名称,它有两个属性:类型和大小。但是我需要为文件设置一个名称。
如果我写 'name' : f.name 它不起作用,因为函数是异步的。
有人知道如何将属性名称传递给内容吗?
编辑:或者,如果你能告诉我如何让它不异步,那也行。
感谢您的帮助。
使用这个解决了:
使用调用异步方法的函数,并接收 ZIP 和文件名。
function makeZip(zip, name) {
name = name.split('.')[0] + ".zip";
zip.generateAsync({type:"blob", compression:"DEFLATE", compressionOptions: { level: 9 }})
.then(function(content) {
// see FileSaver.js
console.log(content)
saveAs(content, name)
var item = {
'name': name,
'type': content.type,
'size': content.size,
'guid': generatorguid()
};
});
}
然后从 for:
调用它for (var i = 0, f; f = content[i]; i++) {
var fZip = new JSZip();
fZip.file(f.name, f);
makeZip(fZip, f.name);
}