码迷,mamicode.com
首页 > Web开发 > 详细

nodejs——压缩文件

时间:2017-02-09 11:01:56      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:路径   结束   图片路径   而不是   ++   ring   package   href   html   

工作需要,由于html无法访问并下载带有中文的路径,例子:“127.0.0.1::8088/files/第一张图片.jpg”,所以想到了先将原图片压缩并命名为不带中文的文件名,下载后用户自行解压缩的方法。

此次采用的包为:archiver

下面是此次我使用该包的源代码和注释,供同学们参考:                                                                                                

var ARCHIVER = require(‘archiver‘);
var FS = require(‘fs‘);

var presentDate = new Date();
var myDate = presentDate.toLocaleDateString();//获取当前日期,eg:2017-02-08,以此日期为压缩包文件名
var path1 = ‘/ARCHIVER/appData/files/第一张图片.jpg‘;//图片的绝对路径
var path2 = ‘/ARCHIVER/appData/files/第二张图片.jpg‘;
var files = [path1, path2];//将图片路径组合成数组形式,用for循环遍历
//压缩后文件输出地址:/ARCHIVER/appData/files/,压缩包名:eg:2017-02-08.zip
var output = FS.createWriteStream(/ARCHIVER/appData/files/ + myDate + ‘.zip‘);
//archiver可压缩为zip或tar格式,这里选择zip格式,注意这里新定义了一个变量archive,而不是原有的archiver包引用
var archive = ARCHIVER(‘zip‘, {
    store: true
});
//将压缩路径、包名与压缩格式连接
archive.pipe(output);
//nameInZIP指压缩包内的文件名
var nameInZIP = [‘第一张图片.jpg‘, ‘第二张图片.jpg‘];
for (var i = 0; i < files.length; i++) {
    console.log(files[i]);
    //FS读取文件流并命名,将读取的文件流append到压缩包中
    archive.append(FS.createReadStream(files[i]), {‘name‘: nameInZIP[i]});
}
//压缩结束
archive.finalize();

 

nodejs——压缩文件

标签:路径   结束   图片路径   而不是   ++   ring   package   href   html   

原文地址:http://www.cnblogs.com/yourstars/p/6380556.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!