如何使用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;
            }

 

posted @ 2022-09-08 09:55  Private!  阅读(556)  评论(0编辑  收藏  举报