2

デバイス上にいくつかのファイルのzipを作成してノードサーバーに送信する必要があるイオンアプリがあります。

JSZip [ http://stuk.github.io/jszip/]を使用して、デバイス上にファイルの zip を作成しようとしています。filesList配列の関数に送信される各ファイルの完全なパスがあります。

 // complete path of all the files that need to be zipped is in filesList array
    // Eg., file:///var/mobile/Containers/Data/Application/BACCA40A-56C4-4BE5-8C5D-1576960BD14B/Library/NoCloud/1473447800255.zip
      var zipFiles = function(filesList) {
                var uniqueFilename = Date.now();
                var zip = new JSZip();
                // create a zip with a unique name
                var zipFolder = zip.folder(uniqueFilename);
                //add files to the zip
                filesList.forEach(function(file) {
                   zipFolder.file(file);    
                })
var promise = null;
            if (JSZip.support.uint8array) {
              promise = zipFolder.generateAsync({type : "uint8array"});
              return promise;
            } else {
              promise = zipFolder.generateAsync({type : "string"});
              return promise;
            } 

       }   

次に、呼び出し関数で

myAPI.zipFiles(docList)
               .then(function(result) {
                   console.log('Zip created '+JSON.stringify(result)); 
               .catch(function(error) {
                 console.log('Error while creating zip '+error);
               });

メモリにzipを作成し(デバイスに保存する必要はありません)、ノードに送信したいと思います。

filesList 配列に 5 つのファイルがあり、それらのファイルへのパスも有効であるにもかかわらず、上記のコードは空の zip になります。

ドキュメントによると、generateAsync メソッドによって返されるデータは Uint8Array です。これをzipに変換するために何かをする必要がありますか?

4

0 に答える 0