elementUI 上传组件很方便我们上传个种类型的文件,但是一般我们的请求都是自己配置的,通过 action="url"传入上传地址就感觉不太喜欢
这时候我们就可以使用 http-request 属性来覆盖默认的上传行为(即action=“url”),自定义上传的实现
HTML代码
<el-upload show-file-list action="#" class="avatar-uploader el-upload" :http- request="handleChange">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
<el-progress v-if="show" :percentage="percentage"></el-progress>
JS 部分
handleChange(file) {
console.log(file);
this.show = true;
getQiNiuUploadToken({}).then((res) => {
let fd = new FormData();
let fileName = file.file.name + new Date().getTime();
fd.append("file", file.file);
fd.append("token", res.data.token);
fd.append("key", fileName);
this.axios
.post("http://upload.qiniup.com/", fd, {
headers: {
"Content-Type": "multipart/form-data",
},
onUploadProgress: (progressEvent) => {
// onUploadProgress 文件上传时的函数 上传进度
this.percentage = Number(
((progressEvent.loaded / progressEvent.total) * 100).toFixed(0)
);
},
})
.then((res1) => {
this.address = res.data.domain + fileName;
this.$message.success("上传成功");
})
.catch((err) => {
console.log(err);
});
});
},