当前位置: 首页 > 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>

http://www.lryc.cn/news/353817.html

相关文章:

  • PCIe总线-事物层之TLP请求和完成报文格式介绍(六)
  • 从 0 开始实现一个网页聊天室 (小型项目)
  • Tomcat部署项目的方式
  • 推荐一个快速开发接私活神器
  • 输入输出(4)——C++的输入输出运算符
  • [图解]产品经理创新模式01物流变成信息流
  • npm 上传包
  • Python 小游戏——贪吃蛇
  • 人工智能方面顶会
  • JRT1.7发布
  • Python错误集锦:xlwt写入表格时提示exception-unexpected-data-type-class-bytes
  • 赶紧收藏!2024 年最常见 20道 Redis面试题(八)
  • Flowable第一次启动MYSQL8.0版本(踩坑)
  • Java基础的语法---StringBuilder
  • 【微服务】springboot 构建镜像多种模式使用详解
  • 手写tomcat(Ⅲ)——tomcat动态资源的获取
  • 软件测试面试题(四)
  • infoq学习笔记-云原生网关当道,三大主流厂商如何“竞 技”?
  • Python中别再用 ‘+‘ 拼接字符串了!
  • 前端上传heic图片转jpe格式并展示
  • VMware虚拟机-设置系统网络IP、快照、克隆
  • 指纹识别概念解析
  • 图像处理神经网络数据预处理步骤的详细解释和分析
  • 音视频开发4-补充 FFmpeg 开发环境搭建 -- 在windows 上重新build ffmpeg
  • 第十二周笔记
  • SketchUp v2024 v24.0.553 解锁版安装教程 (强大的绘图三维建模工具)
  • 力扣题解记录
  • Flutter 中的 ExpandIcon 小部件:全面指南
  • 想转行程序员的朋友,有什么想问的在评论区随便问,我知道的都告诉你。
  • Jenkins工具系列 —— 通过钉钉API 发送消息