axios 上传文件 封装_使用axios上传文件,如何取消上传

axios 上传文件 封装_使用axios上传文件,如何取消上传按楼上的方法,问题已决定,其实axios已经提供了方法。贴一下我自己的代码吧。//在data里声明一个sourcedata(){return{source:null,//取消上传}//上传文件letthat=this;letcancelToken=that.Axios.CancelToken;//Axios使我修改axios原型链了。that.source=cancelToken….

大家好,又见面了,我是你们的朋友全栈君。

按楼上的方法,问题已决定,其实axios已经提供了方法。

贴一下我自己的代码吧。

//在data里声明一个source

data(){

return{

source:null,//取消上传

}

//上传文件

let that = this;

let cancelToken = that.Axios.CancelToken;//Axios使我修改axios原型链了。

that.source = cancelToken.source();

var fd = new FormData();//声明formData()

fd.append(‘image’, that.$refs.upload.files[0]);

fd.append(‘filename’, that.formData.images);

fd.append(“system_type”, that.formData.systemTypeVal);

fd.append(“name”, that.formData.imagesName);

fd.append(“description”, that.formData.description);

fd.append(“system_vision”, that.formData.systemVersion);

fd.append(“disk_format”, that.formData.format);

that.Axios({//发送axios请求

method: ‘post’,

url: that.prefix + ‘/yr_images/create_image/’,

data: fd,

headers: { ‘Content-Type’: ‘multipart/form-data’ },

cancelToken:that.source.token,//取消事件

onUploadProgress(progressEvent){//上传进度条事件

if (progressEvent.lengthComputable) {

let val = (progressEvent.loaded / progressEvent.total * 100).toFixed(0);

that.formData.showProgress = true;

that.formData.startValue = parseInt(val)

}

}

})

.then(function (response) {

if (response.data.status == 1) {

if (that.formData.startValue == 100) {

util.notification(‘success’, ‘成功’, response.data.success_msg);//这是全局封装的方法,不用在意。

that.getData(1);

}

} else {

util.notification(‘error’, ‘错误’, response.data.error_msg);

}

that.modal.formVisible = false;

})

.catch(function (error) {

that.modal.loading = false;

that.modal.formVisible = false;

if(that.Axios.isCancel(error)){//主要是这里

util.notification(‘success’, ‘成功’, ‘取消上传镜像操作成功’);

}

});

}

//点击取消事件,也就是上图的取消按钮

cancel(){

let that = this;

if(that.source){//我先判断soucre是否存在,因为如果我打开弹框不作任何操作,点击取消按钮没有这一层判断的话,that.source.cancel(‘取消上传’);会报错。

that.source.cancel(‘取消上传’);//”取消上传”这几个字,会在上面catch()的error中输出的,可以console看一下。

}

that.modal.formVisible = false;

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148872.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 热血传奇服务端源码(传奇类 手游源码)

    缘起因由在一个无所事事的周末下午,突然想起魔兽世界,官方的账号很久没有上了,里面的大小号现在连满级都不是。以前曾经搭过传奇和星际争霸战网的私服自娱自乐,也听说过魔兽世界有开源的服务端模拟,既然兴致来了就小小的研究一下。目前魔兽世界的私服比较流行的是MaNGOS和Trinity,二者都是模拟魔兽世界服务端。MaNGOS“号称”是一个研究型项目,目的是为了学习大规模的C++项目开发,有

    2022年4月16日
  • log4j pattern详解_log4j不同的类输出到不同文件中

    log4j pattern详解_log4j不同的类输出到不同文件中spring使用log4j,可以有2种方法。1、在web.xml里不做任何配置。log4j.properties放在classpath根目录下,这时候生成的日志文件就没有相对路径,如果写相对路径,则会生成在安装tomcat的根路径下。2、在web.xml设置。          log4jConfigLocation          WEB-INF/classes/log4j.propert

    2022年8月22日
  • Jquery最常见的ajax写法「建议收藏」

    Jquery最常见的ajax写法「建议收藏」1.方式一$.ajax({url:”,type:”,dataType:”,data:”,headers:”,success:function(msg){},error:function(msg){}});参数含义:url:要求为String类…

    2022年9月29日
  • ViewStub和Gone区别[通俗易懂]

    ViewStub和Gone区别[通俗易懂]虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Inflate,也就是说仍然会创建对象,会被实例化,会被设置属性。也就是说,会耗费内存等资源。   推荐的做法是使用android.view.ViewStub,ViewStub是一个轻量级的View,它一个看不见的,不占布局位置,占用资源非常小的控件。可以为ViewStub指定一个布局,在Infl

    2022年6月28日
  • 最短路径问题—Dijkstra算法详解

    最短路径问题—Dijkstra算法详解前言Nobodycangobackandstartanewbeginning,butanyonecanstarttodayandmakeanewending.Name:WillamTime:2017/3/81、最短路径问题介绍问题解释:从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径解决问题的算法:…

    2022年6月4日
  • CountDownLatch、CyclicBarrier、Semaphore、Exchanger

    CountDownLatch、CyclicBarrier、Semaphore、Exchanger

    2021年9月17日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号