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 {


          }
        });
    }
}

Любая помощь приветствуется.:-)

Спасибо!

0 ответов

Другие вопросы по тегам