標籤:路徑 結束 圖片路徑 而不是 ++ 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.zipvar 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——壓縮檔