当前位置: 首页 > 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 = []}

http://www.xdnf.cn/news/695251.html

相关文章:

  • Spring AI 系列之使用 Spring AI 开发模型上下文协议(MCP)
  • maven编译时跳过test过程
  • MYSQL备份恢复知识:第六章:恢复原理
  • pythonocc hlr实例 deepwiki 显示隐藏线
  • Linux 系统入门篇四
  • SPEAR开源程序是用于逼真演示 AI 研究的模拟器
  • 【STM32】按键控制LED 光敏传感器控制蜂鸣器
  • HTTPS加密通信详解及在Spring Boot中的实现
  • 网盘解析工具v1.3.6,增加文件夹解析下载
  • 工业级安卓触控一体机在激光机械中的应用分析
  • 异步上传石墨文件进度条前端展示记录(采用Redis中String数据结构实现)
  • 杆塔倾斜在线监测装置:电力设施安全运行的“数字守卫”
  • Shell - ​​Here Document(HereDoc)
  • 今日行情明日机会——20250528
  • NC37 合并区间【牛客网】
  • 设计模式-依赖倒转原则
  • 微服务FallbackFactory和FallbackClass
  • MCP Server的五种主流架构:从原理到实践的深度解析
  • DeepSeek 赋能智能物流:解锁仓储机器人调度的无限可能
  • 油烟净化器风道设计要点:如何降低风阻并提升净化效果
  • RPG14.装备武器与卸载武器
  • 压测的服务器和用户环境的区别
  • 网站服务器出现异常的原因是什么?
  • Houdini-为人工智能训练生成合成数据
  • Vision + Robot New Style
  • 民意调查员
  • 将 AI 解答转换为 Word 文档
  • [网页五子棋][匹配模块]前后端交互接口(消息推送机制)、客户端开发(匹配页面、匹配功能)
  • Nginx的反向代理
  • 【HW系列】—Log4j2、Fastjson漏洞流量特征