需求
需要实现一个实时展示上传文件进度百分比的展示列表,并且可以中断取消上传。
由于项目中的接口调用都是使用Axios,所以需要基于Axios去实现。
实现
上传进度
1 2 3 4 5 6 7
| let form = new FormData() form.append('file', file) axios.post(url, form, { onUploadProgress: progressEvent => { const complete = (progressEvent.loaded / progressEvent.total * 100 | 0) } })
|
取消上传
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| import { CancelToken } from 'axios'
let cancel = null let form = new FormData() form.append('file', file) axios.post(url, form, { cancelToken: new CancelToken(c => { cancel = c }), onUploadProgress: progressEvent => { const complete = (progressEvent.loaded / progressEvent.total * 100 | 0) } })
cancel()
|