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;
}
相关推荐
zoe驿鹿15 小时前
【CI/CD】前端工程化与自动化:从“手工作坊”到“现代化工厂”的演进之路
前端·ci/cd·自动化
lupai15 小时前
增值税发票 OCR 识别 API 新手接入指南
java·前端·ocr
reasonsummer15 小时前
【办公类-120-01】20260812闵行区幼儿园概况表的数据统计(户籍、五类性质、优抚子女)
前端·python
宿67415 小时前
vue3-指令和事件处理
开发语言·前端·javascript
风骏时光牛马15 小时前
AI助手异常问题Debug排查
前端
梦想的旅途215 小时前
企业微信API实战:Python自动化消息推送
java·前端·python·自动化·企业微信
恋猫de小郭15 小时前
Flutter 3.47 发布,快来看看有什么更新吧
android·前端·flutter
程序员黑豆15 小时前
Java 内存存储机制:基本数据类型 vs 引用数据类型
前端·ai编程·全栈
90后的晨仔16 小时前
uni-app 三方库与插件管理体系全解析:从原生开发者视角彻底讲透
前端
程序员爱钓鱼16 小时前
Rust 生命周期案例详解:从编译错误到真实业务场景
前端·后端·rust