el-upload文件类型不符自动删除
时间: 2023-09-03 16:10:39 浏览: 80
IE9 elementUI文件上传的问题解决
el-upload组件可以通过设置accept属性来限制可以上传的文件类型,例如只允许上传图片类型的文件:
```
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:headers="{'Authorization': 'Bearer ' + token}"
:accept="'image/*'"
:on-success="handleSuccess"
:on-error="handleError">
<el-button size="small" type="primary">Click to Upload</el-button>
<div slot="tip" class="el-upload__tip">jpg/png files with a size less than 2MB</div>
</el-upload>
```
如果上传的文件类型不符合限制,el-upload组件默认会自动删除该文件并提示用户上传的文件类型不符合要求。如果需要自定义提示信息,可以通过设置before-upload钩子函数来实现:
```
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:headers="{'Authorization': 'Bearer ' + token}"
:accept="'image/*'"
:before-upload="beforeUpload"
:on-success="handleSuccess"
:on-error="handleError">
<el-button size="small" type="primary">Click to Upload</el-button>
<div slot="tip" class="el-upload__tip">jpg/png files with a size less than 2MB</div>
</el-upload>
...
methods: {
beforeUpload(file) {
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
if (!isJpgOrPng) {
this.$message.error('上传的文件类型不符合要求,请上传jpg/png类型的文件');
return false;
}
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isLt2M) {
this.$message.error('上传的文件大小不能超过2MB');
return false;
}
return true;
}
}
```
在before-upload钩子函数中,可以判断文件类型和文件大小是否符合要求,如果不符合,可以自定义提示信息并返回false取消上传。如果符合要求,返回true继续上传。
阅读全文