jszip是一个用于创建、读取和编辑.zip文件的JavaScript库,且API的使用也很简单。
安装
npm install jszip
需用到jszip/dist下的jszip.min.js文件以及jszip/vendor下的FileSaver.js文件
引入
将js文件放到jszip文件夹下
<script src="jszip/jszip.min.js"></script> <script src="jszip/FileSaver.js"></script>><!--用于文件下载-->
官方示例
var zip = new JSZip(); zip.file("Hello.txt", "Hello World\n"); var img = zip.folder("images"); img.file("smile.gif", imgData, {base64: true}); zip.generateAsync({type:"blob"}) .then(function(content) { // see FileSaver.js saveAs(content, "example.zip"); });
- 创建一个JSZip实例:
var zip = new JSZip();
- 使用.file(fileName,fileContent)添加一个txt文件
zip.file("Hello.txt", "Hello World\n");
- 使用.folder(folderName)添加一个文件夹
var img = zip.folder("images");
- 使用.file(fileName,fileContent,base64FLag)在文件夹下添加一个图片文件
img.file("smile.gif", imgData, {base64: true});
注:fileContent可以是File文件也可以是Blob二进制数据
- 生成一个zip文件
zip.generateAsync({type:"blob"}) .then(function(content) { // see FileSaver.js saveAs(content, "example.zip"); });
type:"blob" 压缩的结果为二进制流,可用作文件上传
saveAs(content, "example.zip"); 直接在浏览器打成example.zip包并下载,saveAs依赖的js是FileSaver.js