如何使用Jsom和jzip Library从文档库中压缩和下载所有文件(保留文件夹结构)? **下载多个文件,然后使用JSZip&压缩到一个zip文件。 JSZip-utils ** 从多个文件夹中生成一个包含多个文件的单个zip文件。从下面的代码中我可以为文件库中的每个文件夹生成每个zip文件我希望所有文件夹都有一个zip文件
var folderUrl="";
for(var i=1;i<array_fldrname.length;i++)
{
folderUrl= '/Documents/'+array_fldrname[i];
loadFiles(folderUrl,function(files){
var zip = new JSZip();
zipFiles(zip,files,0,function(content){
console.log('Done.');
saveAs(content, "archive.zip");
});
},
function(sender,args)
{
console.log(args.get_message());
});
}
function zipFiles(zip,files,index,complete){
index = index || 0;
var curFile = files.get_item(index);
JSZipUtils.getBinaryContent(curFile.get_serverRelativeUrl(), function (err, data) {
if(err) {
throw err; // or handle the error
}
zip.file(curFile.get_name(), data, {binary:true});
index++;
if(index < files.get_count()) {
zipFiles(zip,files,index,complete);
}
else {
zip.generateAsync({type:"blob"})
.then(function(content) {
complete(content);
});
}
});
}
function loadFiles(folderUrl,success,error){
var ctx = SP.ClientContext.get_current();
var web = ctx.get_web();
var folder = web.getFolderByServerRelativeUrl(folderUrl);
var files = folder.get_files();
ctx.load(files);
ctx.executeQueryAsync(
function() {
success(files);
},
error);
}