微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 JSZip 从 zip 中提取的文件返回纯文本文件

如何解决使用 JSZip 从 zip 中提取的文件返回纯文本文件

我在我的 vue 应用中有这个代码来读取 zip 文件

    handleFiles(e) {
      let file = e.dataTransfer.files[0];
      JSZip.loadAsync(file).then( (zip) => {
        Object.keys(zip.files).forEach( (filename) => {
          this.filesList.push(filename);
          zip.file(filename).async('blob').then( (blob) => {
            this.files.push({name: filename,data: blob});
          });  
        });
      });
    }

用户单击 zip 文件时,我正在尝试下载其中的文件。我正在使用 JSZip。我能够阅读 zip 的内容,但是当我尝试下载文件时问题就开始了。它们保存为纯文本,这是因为我注意到文件 blob 不包含文件类型。我在 chrome 扩展程序中使用 vue 并将此配置传递给下载 API

downloadFile(i) {
        let downloadURL = URL.createObjectURL(this.files[i].data);
        browser.downloads.download({
          saveAs: false,filename: this.files[i].name,url: downloadURL
        }).then( (downloadId) => {
          URL.revokeObjectURL(downloadURL);
          console.log(downloadId)
        });
}

我该如何解决这个问题?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。