рдЬрд┐рдк рдЖрд░реНрдХрд╛рдЗрд╡ рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рджреЗрдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдФрд░ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ред рдкрд╣рд▓реЗ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕рд░реНрд╡рд░ рдХреЛ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ред
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();
рдЬреЛрдбрд╝реЗрдВ (рдирд╛рдо, рдбреЗрдЯрд╛ [, рд╡рд┐рдХрд▓реНрдк])
рд╣рдорд╛рд░реЗ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВред рдкреАрдЫрд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ
рд╡рд┐рдХрд▓реНрдк (рд╡рд┐рдХрд▓реНрдк)
рдмреЗрд╕ 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}");
рдкрд░рд┐рдгрд╛рдо:
рдЫрд╡рд┐рдпреЛрдВ /, рд╕реАрдПрд╕рдПрд╕ /, рд╕реАрдПрд╕рдПрд╕ / 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");
рдкрд░рд┐рдгрд╛рдо: рдлреЙрд░реНрдо рдХреЗ рд╕рднреА рдореИрдЪреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА:
{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));
рд╡реЗрдмрд╕рд╛рдЗрдЯ:
jszip.stuartk.co.ukрдЧрд┐рддреБрдм:
github.com/Stuk/jszip
рд╕рд╛рдордЧреНрд░реА "рд╣рд╛рде рдФрд░ рдХреАрдмреЛрд░реНрдб" рдореЗрдВ рддреИрдпрд╛рд░