美文网首页
下载压缩文件

下载压缩文件

作者: 李大鱼_ | 来源:发表于2021-03-11 14:52 被阅读0次

    安装依赖 jszip和file-saver

    npm install jszip  //文件压缩
    npm install file-saver  //保存文件到本地
    

    使用:

    先把文件压缩,再把压缩文件下载到本地
    import JSZip from 'jszip';
    import FileSaver from 'file-saver';
    import axios from 'axios';
    
    // 获取文件流
    const getFile = (url) => {
      return new Promise((resolve, reject) => {
        axios({
          method: 'get',
          url,
          responseType: 'arraybuffer'
        })
          .then((data) => {
            resolve(data.data);
          })
          .catch((error) => {
            reject(error.toString());
          });
      });
    };
    
    //执行下载压缩文件方法
    allDownLoad() {
          let list = JSON.parse(JSON.stringify(this.filesList));  //filesList文件列表
          const zip = new JSZip();
          const cache = {};
          const promises = [];
          list.forEach((item) => {
            const promise = getFile(item.file_url).then((data) => {
              // 下载文件, 并存成ArrayBuffer对象
              zip.file(item.file_name, data, { binary: true }); // 逐个添加文件
              cache[item.file_name] = data;
            });
            promises.push(promise);
          });
    
         //下载文件到本地
          Promise.all(promises).then(() => {
            zip.generateAsync({ type: 'blob' }).then((content) => {
              // 生成二进制流
              FileSaver.saveAs(content, this.name + '文件压缩包.zip'); // 利用file-saver保存文件
            });
          });
     }
    

    相关文章

      网友评论

          本文标题:下载压缩文件

          本文链接:https://www.haomeiwen.com/subject/rhznqltx.html