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

JSZip / JSZipUtils - 循环图像以添加到 zip 文件

如何解决JSZip / JSZipUtils - 循环图像以添加到 zip 文件

我有一个用于生成 zip 文件的下载功能。如果我不包含 albums.forEach 函数,这会起作用。 Visual Code 在行 this.urlToPromise(images.album_photo_url) 上产生错误,我无法弄清楚如何解决。最终,这里的目标是 forEach 函数生成一堆我想要添加到 zip 文件中的图像 URL。

下面的代码是否有任何明显的遗漏?

没有与此调用匹配的过载。 重载 1 of 4,'(path: string,data: null,options?: JSZipFileOptions & { dir: true; }): JSZip',出现以下错误。 “Promise”类型的参数不可分配给“null”类型的参数。 重载 2 of 4,data: string | number[] | ArrayBuffer | Uint8Array | Blob | ReadableStream | Promise,options?: JSZipFileOptions): JSZip',给出了以下错误。 'Promise' 类型的参数不能分配给 'string | 类型的参数号码[] |数组缓冲区 | Uint8Array |斑点|可读流 |承诺'。 类型 'Promise' 不可分配给类型 'Promise'。 类型 'unkNown' 不能分配给类型 'InputFileFormat'。 “{}”类型缺少“ReadableStream”类型中的以下属性:可读、读取、setEncoding、暂停等。

 download() {

    const csvFile = new File([this.string],'file.csv',{
      type: 'text/plain;charset=utf-8'
    });

    var zip = new JSZip();

    var title = this.title.replace(/\//g,'_') + '.csv';

    zip.file(projectTitle,csvFile);

    this.albums.forEach(albums => {
      albums.images.forEach(images => {
        zip.file(images.title,this.urlToPromise(images.album_photo_url),{ binary: true });
      })

    });
  
    zip.generateAsync({ type: "blob" }).then((blob) => {
      saveAs(blob,"test.zip");
    });

  }


  urlToPromise(url) {
    return new Promise((resolve,reject) => {
      JSZipUtils.getBinaryContent(url,(err,data) => {
        if (err) {
          reject(err);
        } else {
          resolve(data);
        }
      });
    });
  }

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