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」で準備された資料

Source: https://habr.com/ru/post/J133129/


All Articles