首先文件上传可以使用el-upload组建,但它的底层使用的封装的ajax来实现文件上传,官方介绍里面说 abort()方法可以取消上传,但是我没有实现出来😭😭😭,欢迎实现的大佬分享出来。
然后文件上传也可以用input的file属性来实现,我这里就用的这个方法。取消的实现是利用来axios已经封装好的cancelToken来中断一个正在发送的请求。
input,type设置为file可以实现上传,multiple为多文件上传,change事件来触发文件上传函数。
input的默认上传样式不是那么美观,我这里把input框给隐藏掉,然后用了两个按钮。
<div>
<input class="file" name="file" type="file" multiple ref="uploadBtn" @change="uploadData" style="display:none"/>
<el-button type="warning" size="mini" @click="upload">上传文件</el-button>
<el-button style="margin-left: 10px" type="warning" size="mini" @click="innerDrawer=false">返回</el-button>
</div>
//点击上传文件按钮
upload() {
// 代替执行上传功能
this.$refs.uploadBtn.click();
},
uploadData() {
//这里就是设置取消的关键点
this.source = axios.CancelToken.source();
if (!this.$refs.uploadBtn.files[0]) {
console.log(this.$refs.upl