效果预览

核心技术(含业务逻辑)

  1. 选择新头像(本地图片)
    使用 wx.chooseMedia 选择本地图片,官网见
    https://developers.weixin.qq.com/miniprogram/dev/api/media/video/wx.chooseMedia.html
  2. 将新头像上传到微信云存储
    使用 wx.cloud.uploadFile 上传本地图片到微信云存储,官网见
    https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/storage/uploadFile/client.uploadFile.html
  3. 删除微信云存储中的旧头像
    使用 wx.cloud.deleteFile 删除微信云存储中的文件,官网见
    https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/storage/Cloud.deleteFile.html
  4. 将新头像在云存储中的地址存入云数据库

完整范例代码

<view class="avatarBox"><t-avatar bindtap="chooseImg" data-url="{{userInfo.avatarUrl}}" wx:if="{{userInfo.avatarUrl}}" image="{{userInfo.avatarUrl}}" /><t-avatar wx:else icon="user" />
</view>
.avatarBox {text-align: center;padding: 30rpx;
}

选择新头像

    chooseImg() {let that = thiswx.chooseMedia({count: 1,mediaType: ['image'],sourceType: ['album', 'camera'],camera: 'back',success(res) {let tempAvatar = res.tempFiles[0].tempFilePaththat.setData({'userInfo.oldAvatarUrl': that.data.userInfo.avatarUrl,'userInfo.avatarUrl': tempAvatar,'userInfo.tempAvatar': tempAvatar,})}})},

上传保存新头像,删除旧头像

在点击保存时触发

    // 保存更新用户信息async save() {let nickname = this.data.userInfo.nicknameif (!nickname) {wx.showToast({icon: 'none',title: "昵称不能为空",})return}wx.showLoading({title: '保存中',})let tempAvatar = this.data.userInfo.tempAvatarif (tempAvatar) {// 上传新头像let {fileID} = await wx.cloud.uploadFile({// 每次上传生成唯一的新文件名,以便触发云存储的缓存刷新cloudPath: `avatar/${this.data.userInfo.No}_${Number(new Date())}.png`,filePath: tempAvatar, // 文件路径})// 删除旧头像await wx.cloud.deleteFile({fileList: [this.data.userInfo.oldAvatarUrl]})// 用新头像在云存储中的地址,替代旧头像地址this.setData({'userInfo.avatarUrl': fileID,})}let id = this.data.userInfo._id// 对象深拷贝let newData = JSON.parse(JSON.stringify(this.data.userInfo))// 删除多余的表单字段delete newData._openiddelete newData._idwx.cloud.database().collection('user').doc(id).update({data: {...newData,updateTime: new Date()}}).then(res => {wx.hideLoading()// 更新全局的用户信息wx.setStorageSync('userInfo', this.data.userInfo)wx.showToast({icon: "success",title: `保存成功`,})// 等待一会后跳转页面,否则无法看到保存成功的提示setTimeout(() => {this.triggerEvent('showInfo')}, 1000)})},

【微信小程序-原生开发+云开发+TDesign】修改用户头像(含wx.chooseMedia,wx.cloud.uploadFile,wx.cloud.deleteFile的使用)相关推荐

  1. 微信小程序:uni-app云开发的网盘助手

    这是一款uni-app开发的一款网盘小助手小程序源码 该源码主要用于用户输入关键词然后全网抓取百度网盘资源内容 另外呢该小程序还可以免费领取百度网盘七天会员,所以用来引流特别的不错 该小程序还有外卖系 ...

  2. 微信小程序中配置云开发

    微信小程序中配置云开发 一.配置 app.js 文件 onLaunch() {wx.cloud.init({env: 'cloud1-xxxxxxxxxx', // 云开发 环境IDtraceUser ...

  3. 微信小程序:(更新)云开发微群人脉

    大家好,今天给大家带来的这一款是经过优化更新并有所改动的一个版本 我们之前也发布过一款,今天这一款是在之前的哪一款的基础下增加优化 该小程序的群码都是系统自动采集的,所以没有上线但是没有群的烦恼 另外 ...

  4. 仿京细菜谱微信小程序源码 云开发菜谱微信小程序源码

    京细菜谱是一个美食分享网站,提供优质的家常菜谱大全,仿京细菜谱小程序源码为喜欢美食的朋友提供了很多的美食烹饪教程 让您轻松学会做美食.对不同食材和地域的饮食做了不同的分类和详细的做菜方法 分类十分详细 ...

  5. 微信小程序---快速上手云开发

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  6. Mpvue+koa开发微信小程序——腾讯云开发环境的搭建及部署实现真机测试

    为什么写这篇文章? 之前写过一篇文章:微信小程序开发错误:LoginError {type: "ERR_WX_GET_USER_INFO"}解决方法 有的伙伴在这篇文章中评论为什么 ...

  7. 微信小程序如何转云开发

    微信小程序云开发,为前端全栈开发提供了很大的便利.本文主要介绍普通的微信小程序如何让转为云开发. 一.建cloudfunction文件夹 cloudfunction文件夹建立在小程序的根目录下. 二. ...

  8. 微信小程序登录注册——云开发

    微信小程序登录注册页面_云开发_调用云数据库 源代码下载https://download.csdn.net/download/lujiebin/11241027 1.界面展示 2.代码 1.云开发初始 ...

  9. 2022最新坤坤鸡乐盒微信小程序源码+云开发的

    正文: 云开发坤坤鸡乐盒微信小程序源码是由坤坤铁粉ikun们开发的. 因部分ios用户无法体验共举办,特地开发的小程序版鸡乐盒,听说作者也是5年的铁粉. 现在特别火,我也就不多作介绍了,点击就可以发出 ...

  10. 微信小程序详细内容+云开发

    目录 一.微信小程序开发 二.文件介绍 三.基础组件(基本基础组件,更多详细请查看微信开发文档) 四.模板语法 一.文本渲染   {{表达式}} 二.条件渲染 三.列表渲染 四.自定义列表 五.imp ...

最新文章

  1. collections模块简介
  2. 因知足常乐,30以后迷惑
  3. Adaboost from Baidu
  4. java获取当月有几天_腾讯程序员裸辞3个月,转行去送外卖,曝出当月收入网友:又骗我去送外卖...
  5. 作者:石磊,男,北京金信网银金融信息服务有限公司互联网金融行业数据分析师。...
  6. 【解决方案】Android图片加载中drawable等图片资源报错,提示找不到该资源
  7. 百度被告监听用户,回应“没那能力”,但小米说锅就是你的!
  8. jQuery判断Dom对象是否存在
  9. [后端人员耍前端系列]KnockoutJs篇:快速掌握KnockoutJs
  10. android 4g wifi热点,全网通吃!中兴MF910S 4G无线热点上手体验
  11. YOLOv5训练时出现Corrupt JPEG data: 2 extraneous bytes before marker 0xd9
  12. AllenNLP—笔记—json
  13. 相机计算坐标公式_相机位姿估计3:根据两幅图像的位姿估计结果求某点的世界坐标...
  14. 浩鲸科技是外包公司吗_软件外包公司开发软件可靠吗
  15. 基于微信理共享停车位预约小程序系统设计与实现 开题报告
  16. 学习微博中情感分类的句子表达(NLPCC2013)
  17. 所有身体器官的英文单词
  18. 2023 目标,与君共勉
  19. conda install -y 参数
  20. python房价预测_python预测房价

热门文章

  1. Element UI for Vue 3.0 来了!
  2. 设置div table 等元素高度宽度百分之一百 100% 无效解决办法...
  3. 计算机签名数据大小时错误,看过来!介绍开机出现数字签名错误的具体解决步骤...
  4. Linux运维|记录一个挖矿病毒
  5. 安装xdebug-helper插件
  6. 高校动态|北大“韦神”获达摩院青橙奖,奖金100万元!一同获奖的还有他们!
  7. 上高职业技术学校计算机专科,上高职业技术学校
  8. Jmeter-PerfMon Metrics Collector监控解析
  9. java写七彩文字,AE实现七彩闪动文字效果
  10. ethtool命令手册