当前位置: 首页 > news >正文

上传头像upload的简易方法,转base64调接口的

1.首页使用el-image显示数据,用的是转base64后端返给的

 <el-table-column prop="avatar" align="center" label="头像"><template #default="scope"><el-image style="height: 40px;width: 40px;" :src="scope.row.avatar"></el-image></template></el-table-column>private url = 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg'

2.在添加的页面上的操作

//写好组件<el-upload class="upload-demo" ref="upload" action="" :on-remove="handleRemove" :file-list="file_list" :on-change="getFile":auto-upload="false" list-type="picture" :limit="1"><el-button size="small" type="primary">上传人物头像</el-button></el-upload>//存放base64最后放接口里的private icon: any = ''//存放图片的listprivate file_list: any[] = []// 移除上传的文件时的回调private handleRemove() {this.icon = ''this.$delete(this.file_list, 0)}// 图片转base64  核心private getBase64(file) {return new Promise(function (resolve, reject) {let reader = new FileReader()let imgResult = ''reader.readAsDataURL(file)reader.onload = function () {imgResult = reader.result as any}reader.onerror = function (error) {reject(error)}reader.onloadend = function () {resolve(imgResult)}})}//  当文件状态改变、添加文件、上传成功和上传失败时调用,控制大小和类型private getFile(file, fileList) {let fileType = file.name.substring(file.name.lastIndexOf('.') + 1)let fileSize = file.size / 1024 / 1024 < 5if (fileType !== 'png' && fileType !== 'jpg' && fileType !== 'jpeg') {;(this.$refs.upload as any).clearFiles()ElMessage({message: '上传文件只能是 .png、.jpg、jpeg格式!',type: 'warning'})return false} else if (!fileSize) {;(this.$refs.upload as any).clearFiles()ElMessage({message: '上传文件大小不能超过 5MB!',type: 'warning'})return false} else {// this.isImage = truethis.getBase64(file.raw).then((res) => {this.icon = res})}}//再打开编辑的时候需要的操作
//判断带过来的图片有没有base64数据,有就返回它,在dialog显示,没有就清空,解决空白图片问题if (rowData.avatar) {this.file_list = [{ url: rowData.avatar }]} else {this.file_list = []}

相关文章:

  • RK3568DAYU开发板-平台驱动开发:I2C驱动(原理、源码、案例分析)
  • BeeWorks:构建企业智能数字化协作中枢,实现办公与业务系统的无缝整合
  • 基础组件库建设方案(支持业务系统与公共基础服务)
  • 【AI】Spring AI MCP Server 三种实现方式的区别
  • 程序员出海之英语-使用手册
  • world quant教程学习二
  • 【Linux】网络(上)
  • Java常用加密方式
  • 世界模型:AGI突破口?一文了解NVIDIA Cosmos 平台
  • 《仿盒马》app开发技术分享-- 订单地址修改(端云一体)
  • 防止MMdetection训练进程意外中断的终极方法-nohup
  • 银河麒麟操作系统下载
  • 【freertos-kernel】queue(发送)
  • C# NX二次开发-查找连续倒圆角面
  • 4.8.2 利用Spark SQL计算总分与平均分
  • 单片机 串口发送和接收
  • Linux驱动学习笔记(十)
  • Redis学习(十四)主从复制的工作原理、集群搭建(一主二从)
  • 132.在 Vue3 中使用 OpenLayers 实现地图剪切与遮罩效果
  • Mysql学习笔记之事务
  • 傻瓜式建站软件下载/万网域名查询官网
  • 今日国内新闻头条/嘉兴网站建设方案优化
  • 杭州网站建设优化/网站快速优化排名官网
  • wordpress user_register/seo常用方法
  • 宝塔搭建本地网站/手机如何制作一个网页链接
  • 上传文件的网站/泰州seo公司