Javascript конвертировать извлеченный файл из zip в новый метод File() в браузере
У меня возникла проблема при преобразовании данных извлеченного файла из zip в новый метод File(), чтобы я мог повторно загрузить его на другой сервер. Основная идея заключается в том, что пользователь может загружать zip-файл, однако система будет загружать только zip-файлы, а не сам zip-файл... Поэтому мне нужно сначала извлечь файлы внутри zip-файла и загрузить его на сервер. Я понимаю, что это можно сделать, сначала загрузив zip и распаковав его на сервер, но файлы внутри zip необходимо сначала переименовать с соответствующим именем, прежде чем загружать его и сохранять в базе данных.
Я уже могу извлечь файл, но мой вопрос заключается в том, как преобразовать эти закодированные данные ниже в новый метод File().
Я попробовал это:
new File([data], 'cc_causation_report.docx', {type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', lastModified: Date.now()});
но это не работает
Ниже приведены полные коды.
var filesInput = file;
var res;
var reader = new FileReader();
reader.readAsBinaryString(filesInput);
reader.onloadend = function(e){
var myZip = e.target.result;
var unzipper = new JSUnzip(myZip);
unzipper.readEntries();
var myFiles = unzipper.entries;
let z_num_files_uploaded = 0;
let z_temp_files = [];
let z_num_uploader_files = myFiles.length;
for(var i=0; i<myFiles.length; i++) {
var data = myFiles[i].data;
var name = myFiles[i].fileName; // This is the file name
var _fxt = name.split('.').pop().toLowerCase();
var bytes = new Uint8Array(data.length);
for(var _i = 0 ; _i < data.length; _i++){
bytes[_i] = data.charCodeAt(_i);
}
zfile = new File([bytes], name, {type: _MIME_TYPES[_fxt], lastModified: Date.now()});
console.log(zfile);
var uploader = new Slingshot.Upload("myFileUploads");
uploader.send(zfile, function (error, downloadUrl) {
if (error) {
alert (error);
}
else {
}
});
}
}
Любая помощь приветствуется.:-)
Спасибо!