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

小程序-修改用户头像

1、调用拍照 / 选择图片

// 修改头像

const onAvatarChange = () => {

  // 调用拍照 / 选择图片

  uni.chooseMedia({

    // 文件个数

    count: 1,

    // 文件类型

    mediaType: ['image'],

    success: (res) => {

      console.log(res)

      // 本地临时文件路径 (本地路径)

      const { tempFilePath } = res.tempFiles[0]

    },

  })

}

2、获取图片路径

3、上传文件

// 文件上传

      uni.uploadFile({

        url: '/member/profile/avatar',

        name: 'file',

        filePath: tempFilePath,

        success: (res) => {

          if (res.statusCode === 200) {

            const avatar = JSON.parse(res.data).result.avatar

            profile.value.avatar = avatar

          }

        },

      })

4、更新头像

5、完整代码实现

<template>
<!-- 头像 --><view class="avatar"><view class="avatar-content" @tap="onAvatarChange"><image class="image" :src="profile?.avatar" mode="aspectFill" /><text class="text">点击修改头像</text></view></view>
</template><script setup lang="ts">
import { onLoad } from '@dcloudio/uni-app'
import { ref } from 'vue'
import { getMemberProfileAPI } from '@/services/profile'
import type { ProfileDetail } from '@/types/member'// 获取屏幕边界到安全区域距离
const { safeAreaInsets } = uni.getSystemInfoSync()// 获取个人信息
const profile = ref<ProfileDetail>()
const getMemberProfileData = async () => {const res = await getMemberProfileAPI()console.log('获取个人信息', res)profile.value = res.result
}
// 页面加载
onLoad(() => {getMemberProfileData()
})// 修改头像
const onAvatarChange = () => {// 调用拍照 / 选择图片uni.chooseMedia({// 文件个数count: 1,// 文件类型mediaType: ['image'],success: (res) => {console.log(res)// 本地临时文件路径 (本地路径)const { tempFilePath } = res.tempFiles[0]// 文件上传uni.uploadFile({url: '/member/profile/avatar',name: 'file',filePath: tempFilePath,success: (res) => {if (res.statusCode === 200) {const avatar = JSON.parse(res.data).result.avatarprofile.value.avatar = avatar}},})},})
}
</script>

相关文章:

小程序-修改用户头像

1、调用拍照 / 选择图片 // 修改头像 const onAvatarChange () > { // 调用拍照 / 选择图片 uni.chooseMedia({ // 文件个数 count: 1, // 文件类型 mediaType: [image], success: (res) > { console.log(res) // 本地临时文件路径 (本地路径) const { tempFilePath } …...

PCIe总线-事物层之TLP请求和完成报文格式介绍(六)

1.概述 TLP报文按照类型&#xff0c;可以大致分为4中类型&#xff0c;分别是IO请求报文、存储器请求报文、配置请求报文、完成报文和消息请求报文。IO请求报文可分为IO读请求&#xff08;不携带数据&#xff09;和IO写请求&#xff08;携带数据&#xff09;。存储器请求报文可…...

从 0 开始实现一个网页聊天室 (小型项目)

实现功能 用户注册和登录好友列表展示会话列表展示: 显示当前正在进行哪些会话 (单聊 / 群聊) , 选中好友列表中的某个好友, 会生成对应的会话实时通信, A给B发送消息, B的聊天界面 / 会话界面能立刻显示新的消息 TODO: 添加好友功能用户头像显示传输图片 / 表情包历史消息搜…...

Tomcat部署项目的方式

目录 1、Tomcat发布项目的方式 方式1&#xff1a; 直接把项目发布到webapps目录下 方式2&#xff1a;项目发布到ROOT目录 方式3&#xff1a;虚拟路径方式发布项目 方式4&#xff1a;(推荐)虚拟路径&#xff0c;另外的方式&#xff01; 方式5&#xff1a;发布多个网站 1、…...

推荐一个快速开发接私活神器

文章目录 前言一、项目介绍二、项目地址三、功能介绍四、页面显示登录页面菜单管理图表展示定时任务管理用户管理代码生成 五、视频讲解总结 前言 大家好&#xff01;我是智航云科技&#xff0c;今天为大家分享一个快速开发接私活神器。 一、项目介绍 人人开源是一个提供多种…...

输入输出(4)——C++的输入输出运算符

目录 一、输入运算符>> 二、输出运算符<< 三、 输入与输出运算符的重载 &#xff08;一&#xff09;必须重载为类的友元函数 &#xff08;二&#xff09;返回类型应是对象的引用 一、输入运算符>> 输人运算符“>>”也称为流提取运算符,是一个二目…...

[图解]产品经理创新模式01物流变成信息流

1 00:00:01,570 --> 00:00:04,120 有了现状的业务序列图 2 00:00:04,960 --> 00:00:08,490 我们就来改进我们的业务序列图了 3 00:00:08,580 --> 00:00:11,010 把我们要做的系统放进去&#xff0c;改进它 4 00:00:13,470 --> 00:00:15,260 怎么改进&#xff1f;…...

npm 上传包

将自己做好的包做好后上传 1. 切换镜像&#xff08;只能通过官网代理来上传&#xff09; npm config set registry https://registry.npmjs.org/ 2. 添加用户&#xff08;等价登录&#xff09; npm addUser 3. 提交 npm publish 4. 删除 npm unpublish [<pkg>][&…...

Python 小游戏——贪吃蛇

Python 小游戏——贪吃蛇 文章目录 Python 小游戏——贪吃蛇项目介绍环境配置代码设计思路1. 初始化和变量定义2. 创建游戏窗口和FPS控制器3. 初始化贪吃蛇和食物的位置4. 控制贪吃蛇的方向和分数5. 主游戏循环 难点分析源代码呈现代码结果 项目介绍 贪吃蛇游戏是一款通过上下…...

人工智能方面顶会

人工智能 AAAI the National Conference on Artificial Intelligence 美国人工智能协会主办 IJCAJ the International Joint Conference on Artificial Intelligence每年举办 计算机视觉 CVPR IEEE Conference on Computer Vision and Pattern Recognition ECCV European Co…...

JRT1.7发布

JRT1.7连仪器在线演示视频 JRT1.5实现质控主体、1.6基本完成质控&#xff1b;本次版本推进到1.7&#xff0c;1.7集菜单权限、登录、打印导出客户端、初始化、质控、Linux客户端、仪器连接和监控体系各种功能大全&#xff0c;上十年写系统用到的都全了。 这次直接挑战检验最难…...

Python错误集锦:xlwt写入表格时提示exception-unexpected-data-type-class-bytes

原文链接&#xff1a;http://www.juzicode.com/python-error-exception-unexpected-data-type-class-bytes 错误提示&#xff1a; #juzicode.com/VX公众号:juzicode import xlwt wb xlwt.Workbook() ws wb.add_sheet(juzicode) a bjuzicode ws.write(3, 0, 桔子code) ws.wri…...

赶紧收藏!2024 年最常见 20道 Redis面试题(八)

上一篇地址&#xff1a;赶紧收藏&#xff01;2024 年最常见 20道 Redis面试题&#xff08;七&#xff09;-CSDN博客 十五、一个Redis实例最多能存放多少的keys&#xff1f; Redis实例能存放的键&#xff08;keys&#xff09;的数量主要受限于以下几个因素&#xff1a; 物理内…...

Flowable第一次启动MYSQL8.0版本(踩坑)

flowable工作流项目第一次启动报错表不存在&#xff0c;是因为连接mysql数据库的时候没有设置&nullCatalogMeansCurrenttrue&#xff0c;mysql5.0以上该配置默认为flase&#xff0c;即不操作本数据库。因此需要修改为true。datasource:url: jdbc:mysql://127.0.0.1:3306/fl…...

Java基础的语法---StringBuilder

StringBuilder 构造方法 StringBuilder()&#xff1a;创建一个空的StringBuilder实例。 StringBuilder(String str)&#xff1a;创建一个StringBuilder实例&#xff0c;并将其初始化为指定的字符串内容。 StringBuilder(int a): 创建一个StringBuilder实例…...

【微服务】springboot 构建镜像多种模式使用详解

目录 一、前言 二、微服务常用的镜像构建方案 3.1 使用Dockerfile 3.2 使用docker plugin插件 3.3 使用docker compose 编排文件 三、环境准备 3.1 服务器 3.2 安装JDK环境 3.2.1 创建目录 3.2.2 下载安装包 3.2.3 配置环境变量 2.2.4 查看java版本 3.3 安装maven …...

手写tomcat(Ⅲ)——tomcat动态资源的获取

仿写tomcat的Servlet接口体系 之前写过一篇博客&#xff0c;Tomcat的Servlet-GenericServlet-HttpServlet体系的具体结构&#xff0c;以及Servlet的生命周期 Servlet讲解 想要模仿tomcat获取动态资源&#xff0c;就需要我们自己仿写一个Servlet接口体系 主要包括&#xff1a…...

软件测试面试题(四)

一&#xff1a;测试评估的目标&#xff1f; 量化测试进程 生成缺陷和测试覆盖率的总结报告 测试评估的问题 没有把测试覆盖率作为报告测试进程的根据&#xff0c;使得不知测试是否结束&#xff1b; 没有做测试缺陷评估&#xff0c;缺陷评估是量度软件可行性的重要指标&…...

infoq学习笔记-云原生网关当道,三大主流厂商如何“竞 技”?

注基础组件的质量&#xff0c;这些基础组件是用户看不到的。这些组件包括代码质量、自动化的CI/CD、端对端测试、混沌测试等。在APISIX中&#xff0c;我们内置了大 量的测试案例代码&#xff0c;包括单元测试、E2E测试、混沌测试&#xff0c;以及一些基准测试等&#xff0c;从而…...

Python中别再用 ‘+‘ 拼接字符串了!

大家好&#xff0c;在 Python 编程中&#xff0c;我们常常需要对字符串进行拼接。你可能会自然地想到用 操作符将字符串连接起来&#xff0c;毕竟这看起来简单明了。 在 Python 中&#xff0c;字符串是不可变的数据类型&#xff0c;这意味着一旦字符串被创建&#xff0c;它就…...

STM32 Bootloader分区实战:12K空间如何优化配置(附Keil生成bin/hex命令)

STM32 Bootloader分区实战&#xff1a;12K空间优化配置与Keil生成技巧 在嵌入式开发领域&#xff0c;Bootloader设计往往是产品稳定性和可维护性的第一道门槛。面对有限的Flash资源&#xff0c;如何合理分配Bootloader与应用程序(APP)的空间&#xff0c;成为每个STM32开发者必…...

2026最新!3款亲测搞定音频怎么转换成文字的免费神器,实用必备不踩坑!

很多朋友找音频转文字工具&#xff0c;第一个坑就是只盯着“免费”两个字&#xff0c;要么是限额度转不全&#xff0c;要么是错漏百出改到秃头&#xff0c;算下来时间成本贵到离谱。作为蹲了大半年工具的测评博主&#xff0c;我亲测了3款目前能用的高性价比工具&#xff0c;直接…...

氧化锌纳米棒修饰纳米金,ZnO NR‑AuNPs,氧化铜修饰纳米金,CuO‑AuNPs,构建原理

氧化锌纳米棒修饰纳米金&#xff0c;ZnO NR‑AuNPs&#xff0c;氧化铜修饰纳米金&#xff0c;CuO‑AuNPs&#xff0c;构建原理ZnO NR-AuNPs&#xff08;氧化锌纳米棒修饰纳米金&#xff09;**是一类由一维半导体纳米结构氧化锌&#xff08;ZnO&#xff09;纳米棒&#xff08;na…...

HTML 页面中精准控制 Chrome 翻译功能的实用技巧

1. 为什么需要控制Chrome翻译功能&#xff1f; 作为网页开发者&#xff0c;你可能遇到过这样的场景&#xff1a;用户使用Chrome浏览器的翻译功能时&#xff0c;页面上的品牌名称、专业术语或代码片段被错误翻译&#xff0c;导致内容失真。比如公司名称"Apple"被翻译成…...

Rust 异步 ORM 新选择:Toasty 初探

Rust 异步 ORM 新选择&#xff1a;Toasty 初探 2026年4月&#xff0c;Rust 生态迎来了一款新异步 ORM 框架 Toasty。为什么它如此收到 Rust 开发者的广泛关注呢&#xff1f;因为它是来自于鼎鼎大名的 Tokio 团队&#xff0c;该团队研发的 tokio&#xff08;异步运行时&#xf…...

小白友好:无需代码,用MinerU轻松搞定财报图表分析

小白友好&#xff1a;无需代码&#xff0c;用MinerU轻松搞定财报图表分析 1. 为什么你需要这个工具&#xff1f; 每天面对堆积如山的财务报表和业务报告&#xff0c;你是否也遇到过这些困扰&#xff1a; 手动从PDF里复制粘贴数据&#xff0c;一不小心就会出错看着复杂的折线…...

福建钳压式声测管:桩基检测利器

钳压式声测管的定义http://jsoc9409b6b.isitestar.vip/ 钳压式声测管是一种用于桩基检测的预埋管件&#xff0c;通过钳压连接方式实现快速安装。其核心功能是在混凝土灌注桩中形成通道&#xff0c;便于超声波检测仪探测桩身完整性。 主要特点 连接方式&#xff1a;采用钳压工…...

Youtu-VL-4B-Instruct生产环境:银行柜台业务凭证OCR+合规字段校验流水线

Youtu-VL-4B-Instruct生产环境&#xff1a;银行柜台业务凭证OCR合规字段校验流水线 1. 引言 想象一下&#xff0c;银行柜员每天要处理成百上千张业务凭证——开户申请书、转账单、存款凭条。每一张都需要人工核对姓名、身份证号、金额、日期等关键信息&#xff0c;确保填写规…...

工艺智能如何重塑汽车制造全流程?

如果说传统制造工艺是依赖经验的“手工账本”&#xff0c;那么工艺智能就是实时迭代的“智能中枢”。在汽车这个研发复杂度最高、工艺挑战最集中的行业&#xff0c;从设计图纸到车间落地&#xff0c;每一个环节都藏着效率与质量的博弈。当人工智能深度融入行业Know-How&#xf…...

深入解析HashMap:30道经典面试题带你彻底搞懂

深入解析HashMap&#xff1a;30道经典面试题带你彻底搞懂 HashMap是Java面试中的“常客”&#xff0c;无论是初级还是高级开发工程师&#xff0c;HashMap相关的问题几乎都会出现在面试中。本文将汇总最经典的HashMap面试题&#xff0c;从基础原理到源码分析&#xff0c;帮助你…...