JavaScript で JSZIP を使用して圧縮ファイルを抽出する 質問する

JavaScript で JSZIP を使用して圧縮ファイルを抽出する 質問する

私のウェブページでは、ユーザーは圧縮ファイルをアップロードすることになっています。圧縮ファイルには、別の zip ファイルと txt ファイルの 2 つのファイルがあります。サーバーで、zip を受け取った後、zip ファイルを解凍して zip と txt ファイルを抽出し、それらの 2 つのファイルを定義済みのフォルダーに移動したいと考えています。zip ファイルを抽出するコードがありますが、データが正しくないようです。まず、1 つの txt ファイルしかないはずなのに、zip と 2 つの txt ファイルを解凍しました。追加の「未定義」の txt ファイルが作成されました。また、txt ファイルでは、元のデータの代わりに、次のテキストに置き換えられました: '[undefined] [undefined]'。
これについて誰か助けてくれませんか? 以下が私のコードです:

var JSZip = require('JSZip');

fs.readFile( filePath, function(err, data){
  if (!err){
    var zip = new JSZip();
    JSZip.loadAsync(data).then(function(zip){
      object.keys(zip.files).forEach(function(filename){
        var content = zip.files[filename];
        var dest = path + filename;
        fs.writeFileSync(dest, content);
      });
    });
  }
});

ベストアンサー1

これは私が使用している動作バージョンです:

var jsZip = require('jszip')
jsZip.loadAsync(file).then(function (zip) {
  Object.keys(zip.files).forEach(function (filename) {
    zip.files[filename].async('string').then(function (fileData) {
      console.log(fileData) // These are your file contents      
    })
  })
})

必要な情報のほとんどは、http://stuk.github.io/jszip/documentation/examples.htmlしかし、一か所に集まるのは少し難しいので、少し探し回る必要があります。

おすすめ記事