Unzip using JavaScript

JavaScript

使用 JavaScript 库 jszip 可以对传入的本地 zip 包进行解压缩并读取其中的文件。

一段参考代码如下:

const filename = 'example.txt';
async function onDrop(event: DragEvent<HTMLDivElement>) {
  const file: File = event.dataTransfer.files[0];
  const zip = await jszip.loadAsync(file);
  const content = await zip.files[filename].async('text');
  console.log('content of example.txt: ', content);
}

这里,loadAsync 函数接受的参数是一个 Blob,而无论是 input[type=file] 还是通过 drag-n-drop 得到的文件(File),都是一种特殊的 Blob,因而可以直接传递给 loadAsync 使用。

.async('text') 可以将结果异步转化成字符串。API 也支持其他的格式类型,比如 ArrayBuffer 等。(文档

除了读取内容之外,jszip 也支持创建修改 zip 包的内容。完整的 API 文档可以参考这里