通过压缩与上载文件夹具有相同文件夹结构的Javascript上传文件夹

时间:2019-06-24 07:28:12

标签: javascript vue.js file-upload

如何使用javascript在客户端的上传功能上压缩所选文件夹。我有一个“文件夹上传”按钮,它将打开文件夹选择窗口,选择一个文件夹后,我要压缩具有相同文件夹结构的文件夹,然后上传到后端服务器。


研究后:找到以下创建Zip的方法,即使文件位于其子文件夹中,我也可以为该文件夹中的所有文件创建Zip,而该文件夹在同一文件夹中创建了所有文件

但是我想使用相同的文件夹结构进行压缩。

以下是我的代码和使用的库参考:

点击链接:JSFidler

https://stuk.github.io/jszip/

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");
            });
           },

1 个答案:

答案 0 :(得分:1)

请查看这些网址

  https://gildas-lormeau.github.io/zip.js/
  https://www.npmjs.com/package/zip-folder
  https://stuk.github.io/jszip/