您当前的位置: 首页 > 学无止境 > JS经典实例 网站首页JS经典实例
axios带进度条的文件上传(非切片非apc等后端扩展)
发布时间:2020-03-15 19:23:26编辑:雪饮阅读()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="app"></div>
<script type="text/javascript" src="./node_modules/vue/dist/vue.js"></script>
<script type="text/javascript" src="./node_modules/axios/dist/axios.js"></script>
<script type="text/javascript">
Vue.prototype.$axios = axios
var App = {
data() {
return {
file: {},
rate:0,
isShow:false
}
},
template:`<div class='app'>
<input type="file" @change="selfile"/>
<button @click="upload">上传</button>
<div v-show='isShow'>{{rate}}%</div>
</div>`,
methods:{
upload(){
var fd=new FormData;
fd.append('file',this.file);
this.isShow=true;
this.$axios.post('upload.php',fd,{
onUploadProgress:(progressEvent=>{
console.log("上传进度",progressEvent);
var progress=progressEvent.loaded/progressEvent.total*100;
this.$nextTick(function() {
this.rate = Math.ceil(progress);
})
})
});
},
selfile(evt){
console.log("file",evt);
this.file=evt.target.files[0];
}
}
};
new Vue({
el: '#app',
template: `<App />`,
components:{App}
});
</script>
</body>
</html>
关键字词:axios,文件上传,进度
上一篇:axios响应转换器
下一篇:axios取消请求