js解析压缩包

272 阅读1分钟

js解析压缩包中的文件

  • 支持识别文件名称
  • 解决压缩包文件名称中文乱码问题
import JSZip from "jszip";
import chardet from "chardet"; //字符编码检测
const iconv = require("iconv-lite");  //字符编码转换

/*
* file: 文件对象
**/
async function readZip(file) {
    const zip = new JSZip();
    const result = await zip.loadAsync(file, {
        //bytes 文件列表
        decodeFileName: function (bytes) {
          const detectedEncoding = chardet.detect(bytes);
          //解析文件名称并按照原文件的字符编码进行解码
          return iconv.decode(bytes, detectedEncoding);
        }
    });
    console.log('解析出来的文件:', result)
}