antd vue上传操作,自定义请求控制进度条 + 多文件合并上传请求一个接口

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

一、自定义请求控制上传进度条

HTML部分

     <a-upload multiple :customRequest="onUpload" :beforeUpload="onBeforeUpload">
       <a-button> 选择文件 </a-button>
     </a-upload>

JS部分

 /* 上传前钩子 */
  const onBeforeUpload = (file) => {};

  /* 上传 */
  const onUpload = (item) => {

    const formData = new FormData();
    // 其他参数
    formData.append('type', 'series');
    // 上传文件
    formData.append('file', item.file);

    request({
      url: '/upload',
      method: 'post',
      data: formData,
      onUploadProgress: (e) => {
        // 文件上传进度回调
        if (e.lengthComputable) {
          item.onProgress({ percent: (e.loaded / e.total) * 100 });
        }
      }
    })
      .then((res) => {
        item.onSuccess();
      })
      .catch((e) => {
        item.onError();
      });
  };

二、多文件合并上传请求一个接口

HTML部分

<a-upload multiple :beforeUpload="beforeUpload" :customRequest="customRequest" :show-upload-list="false">
  <a-button> 选择文件 </a-button>
</a-upload>
<a-button @click="customRequest"> 重试 </a-button>

JS部分

import debounce from "lodash-es/debounce"

const fileList = ref([]);
const beforeUpload = (file, list) => {
  fileList.value = list;
};
const customRequest = debounce(() => {
  const formData = new FormData();
  fileList.value.map((file) => {
    formData.append('file[]', file);
  });

  uploadFilesTest(formData)
      .then((res) => {
        console.log('上传成功');
      })
      .catch((e) => {
        console.log(e.message);
      });
}, 300);

效果
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值