nodejs——壓縮檔

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.