当前位置:网站首页>制作文件上传进度条
制作文件上传进度条
2022-07-29 17:53:00 【weixin_46787337】
先看原生js怎么做
关键点: 监听请求的upload.onprogress事件
// 发请求
const ajax = (url: string, data: FormData) => {
return new Promise((resolve, reject) => {
const request = new XMLHttpRequest();
request.open('POST', url);
request.onreadystatechange = () => {
if (document.readyState === 'complete' && request.status === 200) {
resolve(request.response);
} else {
reject(new Error('上传失败'));
}
};
request.upload.onprogress = (e: ProgressEvent) => {
//这里可以获取进度条的信息
console.log(`${
e.loaded/ e.total*100 ||0}%`)
};
request.send(data);
});
};
axios做进度条
要点是发送请求是配置onUploadProgress:
async uploadVideo () {
const {
uploadFile} = this
if(uploadFile){
let param = new FormData() //创建form对象,私有,无法直接获取,只能通过get来查看其中的元素
param.append('file',uploadFile)
let config = {
headers:{
'Content-Type':'multipart/form-data',
},
transformRequest: [function (data) {
return data
}],
onUploadProgress: progressEvent => {
let persent = (progressEvent.loaded / progressEvent.total * 100 | 0) //上传进度百分比
console.log(persent)
},
}
axios.post('http://xxxxxxxx/video/upload',param,config) //地址写你们自己的接口
.then(response=>{
var result = response.data
if(result.status == 0){
console.log(result)
}else{
this.$message({
message: '上传失败',
type: 'error',
duration:'1000'
});
}
}).catch(err => {
console.log(err)
})
}
},
边栏推荐
猜你喜欢
随机推荐
有哪位大佬做成功oracle数据库cdc同步的啊,是不是必须是基表才会啊,视图是没用的吧
【Mysql系列】01_查询+排序
整体系统地认识网络安全与发展
A redis tool class to solve cache breakdown, cache penetration
开放原子开源基金会秘书长孙文龙:要打造以开发者为本的开源服务平台
go的堆内存结构分析
kubernetes之资源限制及QOS服务质量
[网络]WAN技术组播
北汇信息继续扩大V2X测试服务,扎根重庆,服务全国
2022开放原子全球开源峰会OpenAnolis分论坛圆满落幕
公司无线规划设计及实施SOP
亿级用户背后的字节跳动云原生计算最佳实践
Analyst: Baidu could become China's most valuable company by 2030
macro definition small method
62页智慧冷链产业园整体解决方案2022
【码蹄集新手村600题】求所给数据的平方根
今年一季度全球PC出货量同比增长32%,创21年来最快增速
2022 年 WebAssembly 应用现状
【Mysql系列】02_连接+表
【码蹄集新手村600题】pow()函数详解