X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-demo.git;a=blobdiff_plain;f=afb-client%2Fbower_components%2Fjszip%2Fdocumentation%2Fhowto%2Fwrite_zip.md;fp=afb-client%2Fbower_components%2Fjszip%2Fdocumentation%2Fhowto%2Fwrite_zip.md;h=e524491e0ba9bbd0e86038a99f57947c75789f9a;hp=0000000000000000000000000000000000000000;hb=5b1e6cc132f44262a873fa8296a2a3e1017b0278;hpb=f7d2f9ac4168ee5064580c666d508667a73cefc0 diff --git a/afb-client/bower_components/jszip/documentation/howto/write_zip.md b/afb-client/bower_components/jszip/documentation/howto/write_zip.md new file mode 100644 index 0000000..e524491 --- /dev/null +++ b/afb-client/bower_components/jszip/documentation/howto/write_zip.md @@ -0,0 +1,106 @@ +--- +title: "How to write a file / give it to the user" +layout: default +section: example +--- + +### In the browser + +With only javascript, this part won't work in old browsers, including IE < 10. +For those browsers, you can use a flash polyfill, see below. + +You can also see this +[example]({{site.baseurl}}/documentation/examples/download-zip-file.html). + +#### Blob URL / FileSaver + +With recent browsers, the easiest way is to use `saveAs` or a polyfill, see +[FileSaver.js](https://github.com/eligrey/FileSaver.js) : + +```js +var blob = zip.generate({type:"blob"}); +saveAs(blob, "hello.zip"); +``` + +Under the hood, the polyfill uses the native `saveAs` from the +[FileSaver](http://www.w3.org/TR/file-writer-api/#the-filesaver-interface) API +(on Chrome and IE10+) or use a [Blob URL](http://updates.html5rocks.com/2011/08/Downloading-resources-in-HTML5-a-download) +(on Firefox). + + +#### Data URI + +For older browsers that support [data URI](http://caniuse.com/datauri), you can also +do the following : + +```js +location.href="data:application/zip;base64," + zip.generate({type:"base64"}); +``` + +The biggest issue here is that the filenames are very awkward, Firefox +generates filenames such as `a5sZQRsx.zip.part` (see bugs +[367231](https://bugzilla.mozilla.org/show_bug.cgi?id=367231) and +[532230](https://bugzilla.mozilla.org/show_bug.cgi?id=532230), and Safari +isn't much better with just `Unknown`. + +Browser support and resulting filename : + +Opera | Firefox | Safari | Chrome | Internet Explorer +-------|---------|--------|--------|------------------ +"default.zip" | random alphanumeric with ".part" extension | "Unknown" (no extension) | "download.zip" on OSX and Linux, just "download" on Windows | No + +#### Downloadify + +[Downloadify](https://github.com/dcneiner/downloadify) uses a small Flash SWF +to download files to a user's computer with a filename that you can choose. +Doug Neiner has added the `dataType` option to allow you to pass a zip for +downloading. Follow the [Downloadify demo](http://pixelgraphics.us/downloadify/test.html) +with the following changes: + +```js +zip = new JSZip(); +zip.file("Hello.", "hello.txt"); +Downloadify.create('downloadify',{ +... + data: function(){ + return zip.generate({type:"base64"}); + }, +... + dataType: 'base64' +}); +``` + + + +#### Deprecated google gears + +[Franz Buchinger](http://www.picurl.org/blog/author/franz/) has written a +brilliant tutorial on [using JSZip with Google Gears](http://www.picurl.org/blog/2009/11/22/creating-zip-archives-with-gears) +([part 2](http://www.picurl.org/blog/2009/11/29/gearszipper-part2-adding-support-for-real-files-and-canvas-elements/)). +If you want to let your Gears users download several files at once I really +recommend having a look at some of his [examples](http://picurl.org/gears/zipper/). + + + +### In nodejs + +JSZip can generate Buffers so you can do the following : + +```js +var fs = require("fs"); +var JSZip = require("jszip"); + +var zip = new JSZip(); +// zip.file("file", content); +// ... and other manipulations + +var buffer = zip.generate({type:"nodebuffer"}); + +fs.writeFile("test.zip", buffer, function(err) { + if (err) throw err; +}); +``` + +