el-upload组件上传前的钩子函数
时间: 2023-07-13 11:24:56 浏览: 101
详解element上传组件before-remove钩子问题解决
el-upload组件的上传前钩子函数为`before-upload`,可以在上传文件之前对文件进行一些处理或者校验,如果返回 false 或者 Promise.reject() 则停止上传操作。该钩子函数接受一个参数 file,表示当前要上传的文件。下面是一个示例:
```
<el-upload
class="upload-demo"
action="/upload"
:before-upload="beforeUpload"
:on-success="onSuccess"
:on-error="onError">
<el-button slot="trigger" type="primary">选取文件</el-button>
<el-button style="margin-left: 10px;" type="success">上传到服务器</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
<script>
export default {
methods: {
beforeUpload(file) {
const isJPG = file.type === 'image/jpeg' || file.type === 'image/png';
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isJPG) {
this.$message.error('上传头像图片只能是 JPG/PNG 格式!');
return false;
}
if (!isLt2M) {
this.$message.error('上传头像图片大小不能超过 2MB!');
return false;
}
return true;
},
onSuccess(response, file, fileList) {
this.$message.success('上传成功!');
},
onError(error, file, fileList) {
this.$message.error('上传失败!');
}
}
}
</script>
```
在该示例中,beforeUpload 方法对上传的文件进行了格式和大小的校验,如果不符合要求则返回 false,上传操作会被中止。如果符合要求则返回 true,上传操作会继续进行。
阅读全文