首页 > 编程语言 >小程序-修改用户头像

小程序-修改用户头像

时间:2024-05-24 19:54:26浏览次数:35  
标签:profile tempFilePath const 修改 res 用户 头像 avatar uni

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 { onl oad } 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.avatar
            profile.value.avatar = avatar
          }
        },
      })
    },
  })
}
</script>

标签:profile,tempFilePath,const,修改,res,用户,头像,avatar,uni
From: https://blog.csdn.net/weixin_57334661/article/details/139115304

相关文章

  • 智研未来,直击 AI DevOps,阿里云用户交流日杭州站来啦!
    在这个技术日新月异的时代,云上智能化DevOps正以前所未有的速度推动企业创新边界,重塑软件开发的效率与品质。为深入探索这一变革之路,诚邀您参与我们的专属闭门技术沙龙,携手开启一场关于云上智能化DevOps的挑战、实践与未来的展望之旅。活动亮点实战挑战剖析:深度交流云上D......
  • 智研未来,直击 AI DevOps,阿里云用户交流日杭州站来啦!
    在这个技术日新月异的时代,云上智能化DevOps正以前所未有的速度推动企业创新边界,重塑软件开发的效率与品质。为深入探索这一变革之路,诚邀您参与我们的专属闭门技术沙龙,携手开启一场关于云上智能化DevOps的挑战、实践与未来的展望之旅。活动亮点实战挑战剖析:深度交流云上D......
  • 域用户端net命令的基本使用集
    ipconfig/all查看本机的ip段netuser查看本地用户列表netuser/domain查看域用户netview/domain查看内网存在多少域netgroup/domain查看域有哪些组netgroup"domainadmins"/domain查看域管理员组netlocalgroupadministrators/domain查看域管理员netuse......
  • user版本修改Build number
    在文件`packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java`中setStringSummary("build_number",Build.DISPLAY);指定了设置--关于设备--版本号。Build.DISPLAY即Build类中的DISPLAY变量,在文件frameworks/base/core/java/android/os/Build.java......
  • JS 监听用户页面访问&页面关闭并进行数据上报操作
    JS监听用户页面访问&页面关闭操作并进行数据上报前言最近在做安全方面的项目,有个需求是在用户访问页面和关闭页面的时候,发送对应的数据。刚拿到需求的时候,觉得没啥东西,init的时候发送一次,页面unload的时候发送一次就行了,很简单,后面开发了一下,又根据当前项目,发现没这么简单......
  • 修改网卡名称
    编辑网卡配置文件vim/etc/sysconfig/network-scripts/ifcfg-网卡名HWADDR=              #MAC地址NAME=        #新网卡名DEVICE=       #新网卡名编辑grub配置文件vim/etc/default/grubGRUB_CMDLINE_LINUX="console=ttyS0......
  • 用户体验测试体系调研报告
    一用户体验概述1.1用户体验的定义、要素和价值1.1.1定义用户体验的最新定义(ISO-9241-210:2019)为“用户体验是指用户对系统、产品或服务的使用和(或)预期使用所产生的感知和反应”。1.1.2要素 通过用户体验的定义和要素,可以看出用户体验测试应从产品使用前、使用中和使用......
  • 爬虫方式(模拟用户)
    基于rake的爬取代码require'nokogiri'require'json'require'open-uri'namespace:spider_sbi_code_infodotasktable_data::environmentdooptions=Selenium::WebDriver::Chrome::Options.newoptions.add_argument('--he......
  • uni-app 样式穿透修改第三方组件 不生效
    问题描述:在uni-app+vue3+less项目中,修改第三方组件的样式使用/deep/ 或者!important都不管用 解决办法: 问题原因:如果你使用的是css,没有使用css预处理器,则可以使用>>>,/deep/,::v-deep。如果你使用的是less或者node-sass,那么可以使用/deep/,::v-deep都可以生效。如果......
  • 配电网 馈线 台区 用户
    所谓分域,是根据配电网电压等级和电网公司运营管理特点,将终端层划分为线路域、台区域和用户域3个信息域。其中,线路域以单条馈线为单位,覆盖从变电站出线侧至10/0.4kV配电变压器的馈线线路,通常在变电站、开闭站、环网柜、配电室等位置部署量测点。台区域以单个10/0.4kV......