微信小程序> vue(iview)批量下载文件(前端打包js),支持跨域

vue(iview)批量下载文件(前端打包js),支持跨域

浏览量:3152 时间: 来源:小阳光而已丶

废话不多说,直接上demo

1. 引入FileSaver和jszip
npm install file-saver --savenpm install jszip --save
2. 页面按需引入插件
import saveAs from 'file-saver';import JSZip from 'jszip'export default {  // 特别注意此处需要初始化一下JSZIP  components: {JSZip   }}
3. 核心方法代码
export()      const zip = new JSZip();      const cache = {};      const promises = [];      const getFile = url = {            return new Promise((resolve, reject) = {                  // 利用ajax,此处写法根据各自配置可能略有不同                  this.$ajax({method:'get', url, responseType: 'arraybuffer'})                  .then(data = {                        resolve(data.data)                  }).catch(error = {                        reject(error.toString())                   })             })      }      // selectedList为选择需要下载的列表      this.selectedList.forEach(item = {            // item为对象,其中url代表下载地址            if(item.url){                  const promise = getFile(item.url)                  .then(data = {                        const arr_name = item.recordUrl.split("/");                        var file_name = arr_name[arr_name.length - 1] // 获取文件名                        file_name = file_name.substring(file_name.indexOf("&")+1);                        zip.file(file_name, data, { binary: true })                         cache[file_name] = data                   })                   promises.push(promise)            }      })      Promise.all(promises).then(() = {            zip.generateAsync({type:"blob"}).then(content = {                  saveAs(content, "压缩文件.zip") // 利用file-saver保存文件            })      })}
4.跨域下载可以参考我的a标签download不起作用这篇文章,走一遍后台,链接:

https://blog.csdn.net/zgjsxzlx/article/details/86543022

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎