当前位置:   article > 正文

小程序-修改用户头像

小程序-修改用户头像

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、完整代码实现

  1. <template>
  2. <!-- 头像 -->
  3. <view class="avatar">
  4. <view class="avatar-content" @tap="onAvatarChange">
  5. <image class="image" :src="profile?.avatar" mode="aspectFill" />
  6. <text class="text">点击修改头像</text>
  7. </view>
  8. </view>
  9. </template>
  10. <script setup lang="ts">
  11. import { onLoad } from '@dcloudio/uni-app'
  12. import { ref } from 'vue'
  13. import { getMemberProfileAPI } from '@/services/profile'
  14. import type { ProfileDetail } from '@/types/member'
  15. // 获取屏幕边界到安全区域距离
  16. const { safeAreaInsets } = uni.getSystemInfoSync()
  17. // 获取个人信息
  18. const profile = ref<ProfileDetail>()
  19. const getMemberProfileData = async () => {
  20. const res = await getMemberProfileAPI()
  21. console.log('获取个人信息', res)
  22. profile.value = res.result
  23. }
  24. // 页面加载
  25. onLoad(() => {
  26. getMemberProfileData()
  27. })
  28. // 修改头像
  29. const onAvatarChange = () => {
  30. // 调用拍照 / 选择图片
  31. uni.chooseMedia({
  32. // 文件个数
  33. count: 1,
  34. // 文件类型
  35. mediaType: ['image'],
  36. success: (res) => {
  37. console.log(res)
  38. // 本地临时文件路径 (本地路径)
  39. const { tempFilePath } = res.tempFiles[0]
  40. // 文件上传
  41. uni.uploadFile({
  42. url: '/member/profile/avatar',
  43. name: 'file',
  44. filePath: tempFilePath,
  45. success: (res) => {
  46. if (res.statusCode === 200) {
  47. const avatar = JSON.parse(res.data).result.avatar
  48. profile.value.avatar = avatar
  49. }
  50. },
  51. })
  52. },
  53. })
  54. }
  55. </script>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/612976
推荐阅读
相关标签
  

闽ICP备14008679号