Как заархивировать выбранную папку при загрузке на стороне клиента, используя JavaScript.У меня есть кнопка «Выгрузить папку», она откроет окно выбора папки, после выбора папки я хочу сжать папку с такой же структурой папок и загрузить на внутренний сервер.
По исследованию: Найденный ниже метод для создания Zip, я могу создать 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");
});
},