nodejs——壓縮文件_archiver


工作需要,由於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();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM