ajax上传附件进度条取消上传

有的项目会使用到附件上传,要求进度条和取消,之前没有使用axios写过,这次刚好碰到了,记录一下;

项目中版本
typescript 复制代码
"axios": "^0.27.2",
使用
typescript 复制代码
import axios from 'axios'
handleUploadAjax() {
    // 取消令牌生成器
    const CancelToken = axios.CancelToken;
    // 获取一个令牌对象, 调用source.cancel(),可以取消上传
    const source = CancelToken.source();
    let formdata = handleUploadFormdata({fileName: '', fileType: '', file: any});
     axios({
        url: 'url',
        headers: {
            'Authorization': `Bearer ${getUserToken() || ''}`,
            'Content-Type': 'multipart/form-data',
        },
        method: 'post',
        data: formdata,
        cancelToken: source.token,
        onUploadProgress: (event: any) => { // axios中自带获取文件上传进度条回调
            let percent = (event.loaded / event.total * 100).toFixed(2);
        }
    }).then((res) => {
    }).catch((err) => {
    });
}
FormData创建
typescript 复制代码
handleUploadFormdata(params: {fileName: '', fileType:'', file: any}){
    const formdata: any = new FormData();
    const entries = Object.entries(params);
    for (const [key, value] of entries) {
    formdata.append(key, value);
    };
    return formdata;
}
相关推荐
恋猫de小郭8 分钟前
Flutter 设计包解耦新进展,material_ui 和 cupertino_ui 发布预告
android·前端·flutter
linux_cfan29 分钟前
[2026深度评测] 打造“抖音级”丝滑体验:Web直播播放器选型与低延迟实践
前端·javascript·html5
天天向上的鹿茸44 分钟前
前端适配方案
前端·javascript
We་ct1 小时前
LeetCode 226. 翻转二叉树:两种解法(递归+迭代)详解
前端·算法·leetcode·链表·typescript
叫我一声阿雷吧1 小时前
JS实现无限滚动加载列表|适配多端+性能优化【附完整可复用源码】
开发语言·javascript·性能优化
哆啦A梦15881 小时前
Vue3魔法手册 作者 张天禹 013_pinia
前端·vue.js·typescript
哆啦A梦15881 小时前
Vue3魔法手册 作者 张天禹 014_组件通信
前端·vue.js·typescript
木斯佳1 小时前
前端八股文面经大全:有赞前端一面二面HR面(2026-1-13)·面经深度解析
前端·状态模式
码云数智-园园2 小时前
Vue 3 + TypeScript 企业级项目架构实战:从0到1打造可维护的前端工程体系
前端·vue.js·typescript
CappuccinoRose2 小时前
CSS 语法学习文档(十五)
前端·学习·重构·渲染·浏览器