如何使用javascript在客户端的上传功能上压缩所选文件夹。我有一个“文件夹上传”按钮,它将打开文件夹选择窗口,选择一个文件夹后,我要压缩具有相同文件夹结构的文件夹,然后上传到后端服务器。
研究后:找到以下创建Zip的方法,即使文件位于其子文件夹中,我也可以为该文件夹中的所有文件创建Zip,而该文件夹在同一文件夹中创建了所有文件
但是我想使用相同的文件夹结构进行压缩。
以下是我的代码和使用的库参考:
点击链接:JSFidler
https://www.npmjs.com/package/jszip
Javascript方法如下:
<-- HTML !-->
<input id="uploadID" type="file" accept=".zip" webkitdirectory>
//Javascript
uploadfolder(e){
var zip = new JSZip();
var fileslist = event.target.files;
var files = zip.folder();
for(let i=0; i<fileslist.length; i++){
console.log(fileslist[i].name);
files.file(fileslist[i].name, fileslist[i].raw, {base64: true});
}
zip.generateAsync({type:"blob"}).then(function(content) {
saveAs(content, "example.zip");
});
},
答案 0 :(得分:1)
请查看这些网址
https://gildas-lormeau.github.io/zip.js/
https://www.npmjs.com/package/zip-folder
https://stuk.github.io/jszip/