element upload组件上传头像

需求:利用 element ui 的 upload 组件把图片转化为 base64 编码进行头像上传

话不多说,直接上代码

HTML模块代码如下:

                        <el-upload
                            list-type="picture"
                            action
                            accept=".jpg, .png"
                            :auto-upload="false"
                            :file-list="fileList"
                            :before-upload="beforeUpload"
                            :on-change="getFile"
                            :on-success="handleAvatarSuccess"
                        >
                            <img v-if="imageUrl" :src="imageUrl" class="avatar">
                            <div v-else class="avatar-container">
                                <i class="el-icon-s-custom avatar-uploader-icon"></i>
                            </div>
                        </el-upload>

JS模块代码如下:

        // 获取文件信息
        getFile(file, fileList) {
            const isLt2M = file.size / 1024 / 1024 < 2;
            if (!isLt2M) {
                this.$message.error('上传图片大小不能超过 2MB!');
                return false;
            }
            this.getBase64(file.raw).then((res) => {
                this.imageUrl = res;
                this.editForm.image = res;
            });
        },
        // 把图片转为base64编码
        getBase64(file) {
            return new Promise(function (resolve, reject) {
                const reader = new FileReader();
                let imgResult = '';
                reader.readAsDataURL(file);
                reader.onload = function () {
                    imgResult = reader.result;
                };
                reader.onerror = function (error) {
                    reject(error);
                };
                reader.onloadend = function () {
                    resolve(imgResult);
                };
            });
        },

最后出来的效果就是这样的啦

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值