12月 17, 2019 NodeJS
在 WEB 的層面上使用壓縮檔案功能,無非也是要為下載檔案做好準備。一次過下載多個檔案在現今的瀏覽概念還是使用打包的方法比較好,或是如果能下載一個 FOLDER 也是一個不錯的方向 (可惜沒有)。

### 壓縮檔案

要達成把檔案壓縮,最方便也是問 NPM 大神找找有沒有人寫好的 !

https://www.npmjs.com/package/adm-zip

![](https://cdn.19site.net/files/a6/ff/a6ff26c0-7828-4116-ab06-8efaf6dedfdb.png)

過去一星期 160 萬次數下載,非常可靠的樣子。

這個 Library 可以讀取 ZIP 檔案的內容,也可以把檔案加入到 ZIP 檔案內,是一個完整雙向的 Library,而且方便易用。

當中有一個能力是非常強勢的,就是它可以把 Zip 檔案直接輸出為 Buffer。意味著可以一邊打包一邊輸出? 還需要試一試...

```js
// creating archives
var zip = new AdmZip();
    
// add local file
zip.addLocalFile("/home/me/some_picture.png");

// get everything as a buffer
var willSendthis = zip.toBuffer();

// or write everything to disk
zip.writeZip(/*target file name*/"/home/me/files.zip");
```

如果是使用 KOA 的話,就可以直接用以下語法輸出到 `response` :

```js
// zip buffer to response
ctx.body = zip.toBuffer();
```

非常方便 !!
過去文章
2025 (9)
4 (5)
3 (1)
2 (3)
2024 (25)
11 (3)
10 (3)
9 (1)
3 (18)
2022 (6)
10 (1)
6 (2)
5 (1)
3 (1)
1 (1)
2021 (21)
11 (7)
7 (1)
6 (2)
5 (2)
4 (6)
3 (2)
2 (1)
2020 (92)
12 (1)
11 (2)
10 (4)
9 (10)
8 (5)
7 (1)
6 (3)
5 (1)
4 (4)
3 (25)
2 (7)
1 (29)
2019 (57)
12 (25)
11 (7)
9 (25)