300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > antd vue上传操作 自定义请求控制进度条 + 多文件合并上传请求一个接口

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

时间:2019-08-25 16:21:42

相关推荐

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

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

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);

效果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。