JSZip рдмрдирд╛рдПрдБ .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; 

рддреЛ рдЪрд▓рд┐рдП рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдЬрд╝рд┐рдк рдЖрд░реНрдХрд╛рдЗрд╡ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрд▓рд╛рд╕ JSZip,ред
рдЕрдЧрд▓рд╛, рд╣рдо рдЗрд╕рдореЗрдВ рдХреЛрдИ рднреА рдбреЗрдЯрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, Hello.txt рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдЪрд┐рддреНрд░ рдлрд╝реЛрд▓реНрдбрд░ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдлрд┐рд░ рдЗрд╕рдореЗрдВ рд╕реНрдорд╛рдЗрд▓.рдЧрд┐рдлрд╝ рдбрд╛рд▓реЗрдВ, рдЗрд╕реЗ рд╕рдм рд▓рдкреЗрдЯреЗрдВ, рдФрд░ рдЗрд╕реЗ рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдВред

рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛


рдУрдкреЗрд░рд╛рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕рд╕рдлрд╛рд░реАрдХреНрд░реЛрдо
7.5+ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо "default.zip"3.0+ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рд╡рд░реНрдгрдорд╛рд▓рд╛ рд╡рд░реНрдгреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХрд╛ рдирд╛рдо ".part"рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо "рдЕрдЬреНрдЮрд╛рдд" рд╣реИ (рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдбрд╛рдЙрдирд▓реЛрдб рд╣реИ) рдмрд┐рдирд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗрдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо "download.zip" рд╣реИ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ IE рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛ :)

рдкреНрд░рд▓реЗрдЦрди



рдирдпрд╛ JSZip ([рд╕рдореНрдкреАрдбрдирдореЗрдереЛрдб])

рдбрд┐рдЬрд╛рдЗрдирд░ред

рд╕рдВрдкреАрдбрд╝рдирдореЗрдереЛрдб, рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧред .Zip рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд╕рдВрдкреАрдбрд╝рди рд╡рд┐рдзрд┐ред
рдЙрдкрд▓рдмреНрдз рддрд░реАрдХреЗред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рдВрдкреАрдбрд╝рди рдХреЗ рдмрд┐рдирд╛ "рд╕реНрдЯреЛрд░"ред
"DEFLATE" рдорд╛рдирдХ рдЬрд╝рд┐рдк рд╕рдВрдкреАрдбрд╝рди, рдЖрдкрдХреЛ jszip-deflate.js рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
 var zip = new JSZip(); //    new JSZip("STORE"); var zip = new JSZip("DEFLATE"); 


рдЬреЛрдбрд╝реЗрдВ (рдирд╛рдо, рдбреЗрдЯрд╛ [, рд╡рд┐рдХрд▓реНрдк])

рд╣рдорд╛рд░реЗ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВред рдкреАрдЫрд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ

рд╡рд┐рдХрд▓реНрдк (рд╡рд┐рдХрд▓реНрдк)
рдмреЗрд╕ 64 , рдмреВрд▓рд┐рдпрдиред рдЖрдзрд╛рд░ рдореЗрдВ рдбреЗрдЯрд╛ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреИрдирд╡рд╛рд╕ рд╕реЗ рдПрдХ рддрд╕реНрд╡реАрд░ред
рдмрд╛рдЗрдирд░реА , рдмреВрд▓рд┐рдпрдиред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рдЪ рд╣реИ рдЕрдЧрд░ рдбреЗрдЯрд╛ рдмреЗрд╕ 64 рдореЗрдВ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЧрд▓рдд рд╣реИ
рддрд╛рд░реАрдЦ , рддрд╛рд░реАрдЦред рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдВрддрд┐рдо рдмрд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рддрд┐рдерд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЕрдиреНрдпрдерд╛, рд╡рд░реНрддрдорд╛рди рд╕рдордп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

 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.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}") 

рдкрд░рд┐рдгрд╛рдо: рдЫрд╡рд┐рдпреЛрдВ /, рд╕реАрдПрд╕рдПрд╕ /, рд╕реАрдПрд╕рдПрд╕ / style.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: "рд░реАрдбрдореА", рдбреЗрдЯрд╛: "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб!", Dir: 5

рд╣рдЯрд╛рдУ (рдирд╛рдо)

рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдлрд╝реЛрд▓реНрдбрд░ рд╣рдЯрд╛рдПрдВ
<рд╕реНрд░реЛрдд рд▓реИрдВрдЧ = "рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ>
zip.add ("Hello.txt", "Hello World \ n");
zip.add ("temp.txt", "nothing"); рд╣рдЯрд╛рдПрдВ ("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)

рдПрдХ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, base64 рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб, рдПрдХ рдирдВрдЧреЗ рдмрд╛рдЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдкрд╛рд╕ред
 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.com/Stuk/jszip



рд╕рд╛рдордЧреНрд░реА "рд╣рд╛рде рдФрд░ рдХреАрдмреЛрд░реНрдб" рдореЗрдВ рддреИрдпрд╛рд░

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


All Articles