elementui 自动上传el-upload转化base64模式

该代码示例展示了如何在Vue.js应用中使用el-upload组件进行图片上传。当文件被选择后,它首先将文件转换为base64编码,然后通过自定义的http-request方法发送到指定的API接口进行存储。组件还包括样式设计,提供了一个带有上传提示图标的avatar-uploader。
摘要由CSDN通过智能技术生成
<template>
    <div>
        <el-upload 
        class="avatar-uploader"
        action="#" 
        :show-file-list="false" 
        :http-request="abc">
            <img v-if="imageUrl" :src="imageUrl" class="avatar">
            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
        </el-upload>
    </div>
</template>
<style>
  .avatar-uploader .el-upload {
    border: 1px dashed #dd1313;
    border-radius: 6px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
  }
  .avatar-uploader .el-upload:hover {
    border-color: #409EFF;
  }
  .avatar-uploader-icon {
    font-size: 28px;
    color: #8c939d;
    width: 178px;
    height: 178px;
    line-height: 178px;
    text-align: center;
  }
  .avatar {
    width: 178px;
    height: 178px;
    display: block;
  }
</style>
<script>
export default {
    data() {
        return {
            show: false,
            imageUrl:''
        }
    },
    methods: {
        abc(data) {
            this.imageUrl = URL.createObjectURL(data.file);
            this.getBase64(data.file).then(resBase64 => {
                this.$apiPost('https://www.zzgoodqc.cn/index.php/index/upload/uploadimg', { imgurl: resBase64 }).then(res => {
                    console.log(res);
                })
            })
            
        },
        //这个file参数 也就是文件信息,你使用 插件 时 你就可以打印出文件信息 看看嘛
        getBase64(file) {
            return new Promise((resolve, reject) => {
                let reader = new FileReader();
                let fileResult = "";
                reader.readAsDataURL(file);
                //开始转
                reader.onload = function () {
                    fileResult = reader.result;
                };
                //转 失败
                reader.onerror = function (error) {
                    reject(error);
                };
                //转 结束  咱就 resolve 出去
                reader.onloadend = function () {
                    resolve(fileResult);
                };
            });
        },

    }
}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值