位置: IT常识 - 正文

vue+element ui完成头像上传功能(文件转base64)以及自定义布局。(vue element ui)

编辑:rootadmin
vue+element ui完成头像上传功能(文件转base64)以及自定义布局。

推荐整理分享vue+element ui完成头像上传功能(文件转base64)以及自定义布局。(vue element ui),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:elementui基于vue,vue element ui教程,vue3 element ui,vue中elementui怎么用,vue3 element ui,vue element ui,vue3 element ui,vue element ui,内容如对您有帮助,希望把文章链接给更多的朋友!

1、自定义布局

      查阅element ui的头像上传功能,发现是点击头像位置才可以上传,那我们可不可以点击头像外部的按钮来上传头像呢?

element ui效果图:                                                   目标效果:

vue+element ui完成头像上传功能(文件转base64)以及自定义布局。(vue element ui)

                         

 在实现之前要明白element ui里面代码的含义:

//el-upload是用来控制图片上传,里面有相关属性。<el-upload class="avatar-uploader" action="https://jsonplaceholder.typicode.com/posts/" :show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload"> //img的是存放上传图片位置的地方 <img v-if="imageUrl" :src="imageUrl" class="avatar"> <i v-else class="el-icon-plus avatar-uploader-icon"></i></el-upload>

 当我们明白每个标签的含义之后,我们就可以通过调整img标签的位置来达到自己的目标效果。

下图为目标效果图的代码:html+css布局

<div class="touxiang">//把存放头像单独拿出来,放到一个div中,通过css布局来调整位置 <div class="pic"> <img v-if="imageUrl" :src="imageUrl?''+imageUrl:'@/assets/avatar.gif'" class="avatar" /> <i v-else class="el-icon-plus avatar-uploader-icon"></i> </div> <el-upload class="avatar-uploader" list-type="picture" ref="upload" accept=".jpg, .png" :limit="1" :auto-upload="false" :show-file-list="false" :file-list="fileList" :on-change="getFile"> //点击上传的按钮一定要在el-upload内部才可以实现 <el-button size="small" type="primary">点击上传</el-button> <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过2MB</div> </el-upload></div>.touxiang { margin: 30px auto 30px 150px; display: flex; .avatar-uploader { ::v-deep .el-upload { margin-top: 5px; height: 45px; display: flex; flex-direction: column; align-content: space-between; } ::v-deep .el-button { width: 90px; height: 35px; font-size: 15px; } } .pic { margin-right: 20px; border-radius: 50%; border: 1px dashed gray; .avatar-uploader-icon { font-size: 28px; color: #8c939d; width: 80px; height: 80px; line-height: 80px; text-align: center; } .avatar { border-radius: 50%; width: 80px; height: 80px; display: block; } }}

2、文件转base64(html代码见上图)

2.1先定义好需要用到的变量

data() { return { // 上传头像地址 imageUrl: '', //接收上传的文件 fileList:[], }; },

2.2通过on-change来监控传入文件的状态,当上传的文件大小(beforeAvatarUpload函数)以及格式(html代码里面的accept属性)达到了我们的目标要求后就可以将文件进行转换,之后在传给后端。

// 头像上传 getFile(file, fileList) { if(this.beforeAvatarUpload(file)){ this.getBase64(file.raw).then(res => { this.imageUrl = res; //ruleForm是我接收后端传过来的数据,此处可以忽略 this.ruleForm.imagePath=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) } }) }, beforeAvatarUpload(file) { const isLt2M = file.size / 1024 / 1024 < 2; if (!isLt2M) { this.$message.error('上传头像图片大小不能超过 2MB!'); } return isLt2M; },

到这里文章就结束啦,希望可以对您有所帮助!

本文链接地址:https://www.jiuchutong.com/zhishi/296153.html 转载请保留说明!

上一篇:怎么让 echarts 图表动起来?定时器解决它 —— 大屏展示案例(动态仪表盘、动态柱状图)(echarts怎么样)

下一篇:vue3与vue2的对比(vue3与vue2的区别)

  • 个体户怎么开增值税普通发票过程
  • 餐饮业税务申报
  • 辞退福利是指
  • 项目固定资产投资强度
  • 咨询费发票入账风险
  • 小规模开票数量怎么算
  • 进口的原材料没有发票
  • 办公室租赁合同需要交那些税?
  • 物业公司代收电费标准
  • 不需要抵扣的怎么直接进费用
  • 增值税优惠的二级明细科目
  • 开票系统维护费可以全额抵扣吗
  • 土地的契税和印花税记入什么科目
  • 国有资产拍买网
  • 流动资产包括哪些形式
  • 汽车折旧计算方法按照公里
  • 鸿蒙系统通知栏和控制
  • 单位社保部分会扣吗
  • 其他应付款调整
  • 设计师用windows什么版本
  • 系统升级为win11
  • 苹果14promax最新版本16.6
  • 增值税专用发票和普通发票的区别
  • mac开机按command+r没反应
  • win10为什么每次开机都要输入微软密码
  • windows7部分的更新安装失败怎么办?
  • php可变参数
  • 十个php高级应用题
  • 年终双薪要做满一年嘛
  • thinkphp自定义标签
  • 税务系统申报表
  • 保姆分为哪些级别
  • ICLR2023《Crossformer: Transformer Utilizing Cross-Dimension Dependency for Multivariate Time Series》
  • php身份证号码验证
  • java的基本
  • 出售子公司股权不丧失控制权
  • 业务招待费可以结转以后年度扣除吗
  • 工会会费收取
  • 运输发票税金如何入账
  • 劳务派遣怎么开
  • 物权转移手续是什么
  • 现金流量表和资产负债表的区别
  • 货物入库会计分录怎么做
  • sql server 2008 备份
  • sql函数判断一个值是否是数字
  • sqlserver重复数据
  • 公司购烟酒怎么入账
  • 个人独资公司对外如何承担责任
  • 债务重组损失计入什么科目2020
  • 当月红冲上月开具的增值税
  • 在记账过程中,可能发生各种各样的差错
  • 工程增值税抵扣比例
  • 出租写字楼写字楼
  • 给员工发中秋福利的用词
  • 企业租入设备的会计分录怎么写
  • 销项税现金流量附表如何指定
  • 存货总账根据什么填列
  • 电脑更新win10系统软件
  • linux如何查询
  • win8系统升级到win10东西还在吗
  • win10周年更新版是什么意思
  • win8.1应用
  • mac登录apple id一直转圈
  • linux如何安装wget命令
  • marvell 网卡驱动
  • Linux通过netstat命令查看80端口连接数的方法
  • windows7如何安装net framework4.0
  • 清除文件内容 linux
  • unity锚点
  • 批量替换在哪
  • node.js中的http.request方法使用说明
  • github常用操作
  • shell脚本调用脚本
  • js dom方法
  • python mp3play
  • 深入理解javascript特性
  • 如何使用nginx
  • js基于什么
  • 申报期一般是什么时候
  • 重庆税务电子发票登录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设