• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jQueryでzipを解凍読み込みするには?)

jQueryでZIPの解凍読み込み方法とは?

このQ&Aのポイント
  • ウェブサーバーにあるCSVをクライアントで見るための方法として、jQueryを使います。
  • 最近CSVファイルの容量が大きくなり、FTPアップロードに時間がかかるため、CSVをZIP圧縮して上げることにしました。
  • クライアント側でもZIPファイルを読み込むための方法を探しています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

んー、jquery.zip.jsを読み込んで $(function(){ $.get('test.zip', function(archive){ console.debug(archive.files); for (var i in archive.files){ var file = archive.files[i]; console.log('========='); console.log(file.name); console.log(file.filesize); console.log(file.inflate()); }}) }); これを試しただけでfile.inflate()でcsvの中身が表示されたけど。

ogu-ne
質問者

お礼

JSZip を使ってできました。 結局別の方法で実現することになりましたが、 回答いただきましてありがとうございました。 ちなみに JSZip は公式サイトの情報も豊富で、 とっつきやすかったです。

ogu-ne
質問者

補足

Taiyonoshizuku 様 重ねて回答をありがとうございます。 動くところでは問題なく動くのですね。 当方、サンプルの test.html を今回提示いただいたソースに置き換えて、  $(function(){    test_get('./test_utf8.zip')  })  function test_get(filepath)  {    $.get(filepath, function(archive){      console.debug(archive.files);      for (var i in archive.files){        var file = archive.files[i];        console.log('=========');        console.log(file.name);        console.log(file.filesize);        console.log(file.inflate());      }    })  } のような感じにしてみてデバッガで実行してみたところ、 $.get(filepath, function(archive) までは来るのですが、 中に入らず、console.debug(archive.files); が実行されることなしに抜けてしまいます。 さきほど気がついたのですが、エラーが上がっていました。 「 RangeError: invalid array length ...".replace(/~(..)/g,function(A,E){return Array(parseInt(E,36)+1).join(" ")});Stri... 」 だそうで、これは jquery.zip.js 中の、文字データの直後にある文でした。 何か環境が悪いのかもしれません。 もうしばらくテストしてみたいと思います。 ありがとうございます。

その他の回答 (1)

回答No.1
ogu-ne
質問者

補足

回答いただきまして、ありがとうございます。 早速公開されているデモをテストしていました。 test.html を表示させると、 test_get('./test_utf8.zip') が呼ばれ、 その中の $.get(filepath, function(zip){ で zip にデータがダウンロードされるところまでは動作するのですが、 for (var name in zip.files) で zip.files が undefined のため、 なにも動作しません。 この zip.files は、圧縮したファイル名なのかなと思い (例えば、data.csv を圧縮して data.zip を作成した場合は data.csv)、 強引にファイル名を指定してみるも、 次の addentry() で zip.files[name] に失敗してしまいます。 (そりゃそうですよね...。) 結果からすると、これも動作しませんでした。 私の実行の仕方に問題があるのかも知れませんが、 正直スキルがそこまでスキルが高くなくて分かりませんでした。 また何かヒントがありましたら、よろしくお願い致します。

関連するQ&A

専門家に質問してみよう