nodejs压缩文件

来源:互联网 发布:excel筛选数据后复制 编辑:程序博客网 时间:2024/06/05 16:06
var JSZip = require('jszip');var fs = require('fs');var zip = new JSZip();zip.file('test.txt', 'hello there');zip.folder("images/img").file("201.gif", fs.readFileSync("../../source/img/201.gif"));zip.folder("images/img").file("199.jpg", fs.readFileSync("../../source/img/199.jpg"));zip.folder("images/img").file("weibo.png", fs.readFileSync("../../source/img/weibo.png"));zip.folder("images/js").file("navigation.js", fs.readFileSync("../../source/js/navigation.js"));var data = zip.generate({base64:false,compression:'DEFLATE'});fs.writeFile('demo.zip', data, 'binary', function(){    console.log('success');});

生成的demo.zip的目录结构:
demo.zip
|--test.txt
|--images
|    |--img
|    |    |--201.gif
|    |    |--199.jpg
|    |    |--weibo.png
|    |--js
|    |    |--navigation.js

参数说明

这个工具api很多,这里就不列出来,详细信息看官方文档吧。但在使用过程中,发现官方文档有个问题,这里记录下。
对于generate方法options参数中base64属性,默认值为true(官方文档说默认值为false);指定为true或不指定时,生成的zip包会有问题,后续使用这个api时记得加一下就好。

var data = zip.generate({base64:false,compression:'DEFLATE'});