vue 中单个下载文件和批量下载文件

vue 中单个下载和批量下载
最近开发项目需要做文件下载。感觉挺简单的,就是后端传过来下载的URL地址,然后点击下载,不多这个也分多个下载和单个下载。多个下载比较麻烦一点,不说了,上代码

<el-button v-if="del==true" size="mini" type="text" class="deleteBtn" icon="el-icon-download" @click="handledownload(scope.row)" title="删除"></el-button>
我的值这个是子组件传过来的,你们也可以异步请求过来,只要获取它的url地址就可以
先说单个下载
这个是一个vue调用的方法
 handledownload(row){
      console.log("row",row)
      // // this.datafile ='./static/htm'
      // this.datafile =row.fileUrl
      // // console.log("href: " + link.href);
      if(row.fileUrl){
        window.open(row.fileUrl)
      }else{
        this.$message('该会议未上传文档');
      }
    },
    但是这个只能用单个下载,不能支持多个下载,因为浏览器规则原因。

这个可以多个下载,我也是在网上看到的

 handleBatchdownload(){
      this.selectedRows = this.$refs.myPage.selectedRows //这个里用的element的组件
      console.log(this.selectedRows);//选择下载几个文件
      var delData = []
      for(var i=0;i<this.selectedRows.length;i++){//循环出来下载url
        delData.push(this.selectedRows[i].fileUrl);//数组里面
        this.downloadFile(delData[i]);//调用方法,加入参数
      }
      console.log(delData)
    },
    downloadFile(url){
     const iframe = document.createElement("iframe");
      iframe.style.display = "none";  // 防止影响页面
      iframe.style.height = 0;  // 防止影响页面
      iframe.src = url;
      document.body.appendChild(iframe);
      setTimeout(()=>{
        iframe.remove();
      }, 5 * 60 * 1000);
      this.$refs.myPage.selectedRows = []
    },

好了,到这里就结束,上面的方法也有借鉴网上 。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值