JSZip Create .zipファイル

クライアントにzipアーカイブ内の複数のファイルを提供する非常に優れた簡単な方法。 すでにロードされているサーバーをロードしません。

var zip = new JSZip(); zip.add("Hello.txt", "Hello World\n"); img = zip.folder("images"); img.add("smile.gif", imgData, {base64: true}); content = zip.generate(); location.href="data:application/zip;base64,"+content;
      
      





それでは、ここで何が起こっているのか見てみましょう。

zipアーカイブのインスタンス、クラスJSZipが作成されます。

次に、Hello.txtなどの任意のデータを追加できます。画像フォルダーも追加できます。

次に、smile.gifをその中に入れ、すべてをまとめて、zipファイルとして提供します。



サポートされているブラウザ



オペラ Firefox サファリ クロム
7.5+ファイル名「default.zip」 3.0+ファイル名に拡張子「.part」が付いたアルファベットのセット ファイル名は拡張子なしの「不明」(ダウンロード済み)です ファイルの名前は「download.zip」です


私はIEについて私は何も言わないだろうと思う:)



ドキュメント





新しいJSZip([compressionMethod])


コンストラクター。



compressionMethod、文字列。 .zipファイルで使用される圧縮方法。

利用可能な方法。

デフォルトでは、圧縮なしの「STORE」。

「DEFLATE」標準zip圧縮、jszip-deflate.jsファイルが必要

 var zip = new JSZip(); //    new JSZip("STORE"); var zip = new JSZip("DEFLATE");
      
      







追加(名前、データ[、オプション])


zipアーカイブにファイルを追加します。 連鎖をサポート



オプション

base64 、ブール値。 データが base64 エンコードされている場合、 trueに設定します。 たとえば、キャンバスからの写真。

binary 、boolean。 デフォルトでデータが base64にある場合 true 、そうでない場合はfalse

日付 、日付。 ファイルが最後に変更された日付を設定するために使用します。 それ以外の場合、現在の時間が使用されます。



 zip.add("Hello.txt", "Hello World\n"); zip.add("smile.gif", "R0lGODdhBQAFAIACAAAAAP/eACwAAAAABQAFAAACCIwPkWerClIBADs=", {base64: true}); zip.add("magic.txt", "U2VjcmV0IGNvZGU=", {base64: true, binary: false}); zip.add("Xmas.txt", "Ho ho ho !", {date : new Date("December 25, 2007 00:00:01")}); zip.add("animals.txt", "dog,platypus\n").add("people.txt", "james,sebastian\n");
      
      





結果: Hello.txt、smile.gif、magic.txt、Xmas.txt、animals.txt、people.txt



フォルダー(名前)


zipアーカイブにディレクトリを追加します。 連鎖をサポート

 zip.folder("images"); zip.folder("css").add("style.css", "body {background: #FF0000}"); // or specify an absolute path (using forward slashes) zip.add("css/font.css", "body {font-family: sans-serif}")
      
      





結果: images /、css /、css / style.css、css / font.css



見つける(針)


文字列または正規表現をすべてのファイル名と比較し、各一致の情報を含むオブジェクトを返します。

 zip.add("Readme", "Hello World!\n"); zip.add("Readme.French", "Bonjour tout le monde!\n"); zip.add("Readme.Pirate", "Ahoy m'hearty!\n"); zip.find("Readme"); // only finds "Readme" zip.find(/^Readme/); // Regular expression finds all three
      
      





結果: {name:“ Readme”、data:“ Hello World!”、Dir:false}という形式のすべての一致を持つ配列



削除(名前)


ファイルまたはフォルダーを削除する

<source lang = "javascript>

zip.add( "Hello.txt"、 "Hello World \ n");

zip.add( "temp.txt"、 "nothing")。remove( "temp.txt");



結果: Hello.txt

 zip.add("Hello.txt", "Hello World\n"); zip.folder("css").add("style.css", "body {background: #FF0000}"); zip.remove("Hello.txt").remove("css");
      
      





結果: Empty.zip



生成(asBytes = false)


zipアーカイブを生成します。 デフォルトでは、base64でエンコードされ、ベアバイト文字列を取得するにはtrueを渡します。

 content = zip.generate(); location.href="data:application/zip;base64,"+content; content = zip.generate(true); for (var c = 0; c < content.length; c++) { console.log(content.charCodeAt(c)); // do other things }
      
      







ウェブサイト: jszip.stuartk.co.uk

Github: github.com/Stuk/jszip






エディター「Hands&Keyboard」で準備された資料



All Articles