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;
}
相关推荐
treasure1406 小时前
【复古】浅尝Django前后端不分离
前端·css·python·django·bootstrap·html·web
jay神7 小时前
基于 YOLOv8 的手势识别系统(Web 版)
前端·人工智能·python·深度学习·yolo·计算机视觉·计算机毕业设计
屏什么录7 小时前
长时间录屏中途崩溃:MP4 打不开的 6 种救回方案与参数设置
前端·音视频开发
code_Bo7 小时前
不只命令行:我把跨 Agent 会话同步做成了桌面应用
前端·javascript·后端
kyriewen8 小时前
AI 能把页面写出来,为什么改个需求就开始崩?
前端·javascript·人工智能
OpsEye8 小时前
同一套用例跑两个大模型接口,差异到底出在哪
javascript·ai编程
X1A0RAN8 小时前
PPT 图片批量处理教程:导出全部幻灯片 · 提取全部素材
开发语言·javascript·powerpoint
涛涛ing9 小时前
2026年最值得关注的前端变化,藏在“默认值”里
前端
量化分析码农9 小时前
股票历史数据的复权参数对照:多级别返回的字段与数值差异
java·javascript·后端
亿元程序员11 小时前
太牛了!这AI做出来的游戏,居然还能变现!
前端