猿问

通过js遍历下载地址数组实现多文件下载的问题

由于项目需要,需要实现一个批量下载的功能。


具体流程为,我传入一个id,从后台获取这个id下所有文件的下载地址,通过循环调用实现批量下载


由于公司找的网盘端不支持跨域访问,无法通过axios来进行下载,只能通过a标签的download属性来进行操作,在实现的过程中遇到了问题。


xxx.vue 文件



              <el-button type="text" class="title" @click="downloads(scope.row)">下载</el-button>

              <a :href="uri" ref="a" download style="display:none">下载</a>

js代码


    downloads(row) {

      get(row.id).then(res => {

        if (res.data.length > 0) {

          for (const id of res.data) {

            this.$refs.a.href = id

            this.$refs.a.click()

          }

        }

      })

    },

这段代码在单文件时,每个浏览器均下载正常,但是超过1个的时候除了chrom会提示是否允许多文件下载之外,诸如safiri,firefox都只会下载第一个文件。

求教各位大牛如何解决这个问题。


海绵宝宝撒
浏览 1229回答 2
2回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答