如何使用Antd的图片上传组件
html结构如下
<a-upload
v-model:file-list="fileList" //已经上传的文件列表(受控)
name="avatar"
list-type="picture-card" //上传列表的内建样式,支持三种基本样式 text, picture 和 picture-card
class="avatar-uploader"
:show-upload-list="false" //是否展示 uploadList, 可设为一个对象,用于单独设定 showPreviewIcon 和 showRemoveIcon
action="/app/uploadImage" //你图片的上传地址
:before-upload="beforeUpload" //可以限制上传的文件和文件大小
@change="handleChange" //上传中、完成、失败都会调用这个函数。
>
<img style="width: 86px;" v-if="form.pic_url" :src="form.pic_url"/>
<div v-else>
<img style="width: 66px;" src="/static/img/check/abc.png" > //默认展示的图片
<div class="ant-upload-text">点击更换</div>
</div>
</a-upload>
下面是方法
handleChange(info) {
if (info.file.status === 'done') {
if (info.file.response.res != 0) {
return this.$message.error(info.file.response.msg);
}
this.form.pic_url = info.file.response.data.image_url //赋值
}
},
//控制奖品图片的图片大小
beforeUpload(file){
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
if (!isJpgOrPng) {
this.$message.error('您只能上传jpeg或png文件!');
}
const isLt10K = file.size / 1024 < 10;
if (!isLt10K) {
this.$message.error('图片大小不能超过10K!');
}
return isJpgOrPng && isLt10K;
}