Ant-design-upload中 upload批量挂接

19 篇文章 0 订阅
2 篇文章 0 订阅

需求是批量上传一个文件夹中的文件,当文件夹中的文件上传完成之后进行一个上传完成的提示

<el-dropdown class="ml-1" size="medium"
@command="BatHandle">
   <el-button icon="el-icon-s-operation" >
        批量操作<i class="el-icon-arrow-down el-icon--right"></i>
   </el-button>
   <el-dropdown-menu slot="dropdown">  
       <a-upload
           name="file"
           :showUploadList="false"
           :multiple="true"
           :directory="true"
           :before-upload="beforeUploadFile"
           :customRequest="__upload_folder_request" 
       >
           <el-dropdown-item command="pickup">
                   <i class="el-icon-files"></i> 批量挂接
               </el-dropdown-item>
       </a-upload>
   </el-dropdown-menu>
</el-dropdown>

在这里插入图片描述

customRequest通过覆盖默认的上传行为,可自定义自己的上传实现

  • 以下是js相关方法的代码,可根据实际情况自行定义
 /**
 1. @description: 
 2. 上传文件夹之前方法
 3. @param {*}
 4. @return {*}
  */
 beforeUploadFile(file){
     const formData = new FormData()  
     formData.append('file', file) 
     formData.append("tableid" ,this.defaultActive)
     let a = new Promise((resolve,reject)=>{
         this.$api.post(`/api/notoken/receivequanwen`, formData )
         .then( res=>{
         //没上传一个文件执行一次方法
             let code = res.code;
             if( code == 0 ){
                resolve()
             }
         })
     })
   this.arrList.push(a);//每次上传都向定义的数组中推进去一个上传的方法
 },
 __upload_folder_request(){
     if(this.arrList.length==0)return
      Promise.all(this.arrList).then(()=>{
         this._query_data();//刷新上传成功后的表格数据
         this.successTit('挂接成功')
     }).catch(()=>{
     })    
     this.arrList=[];
 },
  1. 需要了解的是upload假如上传十个文件
  2. 他会先执行十个beforeUpload的方法,然后再执行十个自定义的上传方法,所以我们要监听最后一个文件执行完成后进行相关的信息提示
  3. 就只让信息提示和请求新数据的方法执行一次即可;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值