中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

使用JavaScript創(chuàng)建Zip文件

發(fā)布于:2021-02-15 00:00:36

0

533

0

JavaScript Zip文件 Zip

盡管我們在服務(wù)器端使用JavaScript做著令人驚奇的事情,但重要的是不要讓我們忽略客戶端上發(fā)生的一些很棒的事情。我最近發(fā)現(xiàn)的一個如此出色的項目是JSZip:一個JavaScript庫,可讓您輕松地從前端生成ZIP文件。那為什么有用呢?您可以允許用戶從圖庫或幾乎所有其他內(nèi)容中選擇和下載圖像。讓我們看看JSZip如何允許您從客戶端生成結(jié)構(gòu)化的Zip文件!

首先獲取JSZip庫 ,該庫恰巧在所有主流瀏覽器中都可以使用。一旦頁面中提供了庫,生成Zip文件實際上只是幾行代碼:

var zip = new JSZip();

// Add an top-level, arbitrary text file with contents
zip.file("Hello.txt", "Hello Worldn");

// Generate a directory within the Zip file structure
var img = zip.folder("images");

// Add a file to the directory, in this case an image with data URI as contents
img.file("smile.gif", imgData, {base64: true});

// Generate the zip file asynchronously
zip.generateAsync({type:"blob"})
.then(function(content) {
   // Force down of the Zip file
   saveAs(content, "archive.zip");
});

您可以添加帶有自定義名稱和內(nèi)容以及任意目錄的單個文件。添加內(nèi)容后,JSZip可以異步生成您的Zip文件,隨后您可以觸發(fā)下載。

您還可以加載和讀取Zip文件:

var read_zip = new JSZip();
// Load zip content; you'd use fetch to get the content
read_zip.loadAsync(content)
.then(function(zip) {
   // Read from the zip file!
   read_zip.file("hello.txt").async("string");
   // a promise of "Hello Worldn"
});

我非常感謝JSZip的簡單性。有更多高級和復(fù)雜的庫,例如zip.js,但是JSZip可能會涵蓋大多數(shù)用例。在客戶端利用Zip文件的一個很好的例子是在Service Worker Cookbook中:在本地緩存Zip文件,提取其內(nèi)容,并在Service Worker中提供服務(wù)。無論您使用哪種情況,都知道無需服務(wù)器就可以讀取和生成Zip文件!