使用el-upload 上传图片组件,验证图片是否上传成功的两种方式
第一种方式
- 使用el-upload自带的上传方法
<el-upload
class="avatar-uploader"
action="https://jsonplaceholder.typicode.com/posts/" //使用action方式上传
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload">
<img v-if="imageUrl" :src="imageUrl" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
2. 添加非空校验
rules: {
logo: [
{ required: true, message: '请选择图片', trigger: 'change' }
],
3.调用上传成功的回调函数,对图片是否上传进行校验,
handleAvatarSuccess(res, file) {
//通过这种方式手动验证,这样页面上的必传验证就会消失
this.form.logo = res.data.filepath;
this.$refs.form.validateField('logo');
},
第二种方式
- 使用el-upload自定义的:http-request上传方法
<el-form-item label="图片" prop="logo">
<el-upload
class="el-upload"
:http-request="uploadImg"
:show-file-list="false"
:before-upload="beforeAvatarUpload">
<img v-if="form.logo" :src="form.logo" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
- 添加非空校验
rules: {
logo: [
{ required: true, message: '请选择图片', trigger: 'change' }
],
3.调用上传之前的回调函数,对图片是否上传进行校验
beforeAvatarUpload(file){
//通过这种方式手动验证,这样页面上的必传验证就会消失
this.form.logo = file.name;
this.$refs.form.validateField('logo');
},