具体需求:登录后缓存微信头像,在调用某接口时,判断数据库中用户是否有头像,若为空,则将微信头像上传至服务器中,后续展示就用数据库中的头像数据。

具体实现:获取缓存的微信头像,调用wx.getImageInfo()得到微信头像路径(这一步是必需步骤),再调用wx.uploadFile()上传微信头像。

代码:

saveUserPhoto(){var that = this;let wxPhoto = wx.getStorageSync('avatar')console.log('开始上传微信头像到后台,微信头像地址:',wxPhoto)//获取图片信息wx.getImageInfo({src: wxPhoto,success: function (res) {var params = {imgPath: res.path}//上传图片network.upload(params,that.getFileInfo);},fail: function(srev){}});},getFileInfo(res){if(res.fileUrl.state!==0){wx.showToast({title: '上传头像失败',icon: 'none'})return}console.log('调用upload接口上传成功,头像路径:',res.fileUrl.data.url)let params = {photo: res.fileUrl.data.url}network.updateUserPhoto(params,this.getPhotoResult,res.fileUrl.data.url);},getPhotoResult(res,uploadUrl){if(res.data.state===0){wx.setStorageSync('avatar',config.apiList.wxDownload+uploadUrl)}console.log('上传微信头像成功')}

// 上传
function upload(params,cb, obj){var formDataObj = {}if(params.hasOwnProperty('zipLevel')){formDataObj.zipLevel = params.zipLevel}wx.uploadFile({url: config.apiList.wxUpload,filePath: params.imgPath, //要上传文件资源的路径name: 'file', //文件对应的 key,开发者在服务端可以通过这个 key 获取文件的二进制内容header: {"authorization": wx.getStorageSync('token'),'Content-Type': 'multipart/form-data',},//HTTP 请求中其他额外的参数比如 用户idformData: formDataObj,success(res) {var file = {tempFileUrl: params,fileUrl: JSON.parse(res.data)}typeof cb == 'function' && cb(file, obj)},fail: function () {wx.showToast({title: '请求失败',})}})
}

遇到的问题:在本机调试时成功,但发布到体验版时没有上传成功。在同事手机试时,偶然发现,当打开调试模式时就可以上传成功了。原来,我本地开发时打开了“不校验合法域名...”。当我关闭不校验合法域名时,就重现了这个问题。并且控制台报错"https://thirdwx.qlogo.cn 不在以下 downloadFile 合法域名列表中",最后在小程序后台的downloadFile合法域名中配置上就可以了。

 注意: 在小程序配置合法域名后 ,一定要在开发者工具 - 项目配置中域名信息中刷新一下。

小程序 - 修改头像功能相关推荐

  1. 新版带支付功能2021全新最火表情包小程序源码,无限裂变,斗图小程序,头像壁纸,外卖服务内附详细搭建教程

    内附详细搭建教程 1.全新表情包小程序已上线 2.增加外卖系统服务,进行进一步的扩展内容分销 3.独立后台系统,自己运营管理,广告位自己控制 4.流量主可以代开,小程序包通过审核,不通过不收钱 5.不 ...

  2. 微信小程序-注册登录功能-本地数据保存-页面数据交替

    Title:微信小程序-注册登录功能-本地数据保存-页面数据交替 完美-小程序登录注册功能.rar-- 访问码:yqa5 1.主页面 主页面login.js代码 // pages/login/logi ...

  3. 简单实现小程序授权登录功能

    本人给大家带来了关于微信小程序的相关知识,其中主要介绍了怎么实现小程序授权登录功能的相关内容,下面一起来看一下,希望对大家有帮助. 在我们平时工作.学习.生活中,微信小程序已成为我们密不可分的一部分, ...

  4. 小程序获取头像试试水 02《 程序员变现指南之 微信QQ 小程序 真的零基础开发宝典》

    本系列教程是针对粉丝的变现教程,还不是粉丝的可以关注我并且到社区:https://bbs.csdn.net/topics/603436232 进行打卡,不是老粉的也可以获取最终的技术变现学习,最终还有 ...

  5. 小程序助手多功能微信小程序反编译工具

    介绍: 小程序助手多功能微信小程序反编译工具,软件采用 VS 2017 编译,需安装.net 4.0 或以上版本方可运行,理论上 win7 .win10及以上系统 x86 x64 运行正常,条件有限未 ...

  6. 微信小程序原生开发功能合集一:微信小程序开发介绍

    一.专栏介绍   本专栏主要内容为微信小程序常用功能开发过程的介绍说明,包括开发微信小程序常用组件的封装.常用功能的开发等,提供源代码.开发过程讲解视频.完整的课程等.   组件封装: 下拉选择组件. ...

  7. 微信小程序用户头像编辑上传

    微信小程序用户头像编辑上传 近期接触了一个小程序项目,需要可以修改用户头像,默认获取用户当前微信头像,点击头像,可调用手机照相机或者本地相册,更换图片. html代码如下: js代码:

  8. 小程序 【头像昵称填写能力】使用

    小程序 [头像昵称填写能力]使用 引言 [头像昵称填写能力]使用方法 页面使用到的封装方法 asyncWx.js 文件 replace.js 文件 注意 引言 由于小程序在不久之后将对 getUser ...

  9. 【React-Native】集成微信官方安卓端SDK,实现微信登录、发送/分享小程序消息等功能

    github地址:https://github.com/afresh/react-native-wechat-android 网上已有成熟的第三方插件react-native-wechat(以下简称R ...

  10. 小程序用户头像昵称获取规则调整公告及微信小程序基础库的问题

    更新时间:2022年11月9日 由于 PC/macOS 平台「头像昵称填写能力」存在兼容性问题,对于来自低于2.27.1版本的访问,小程序通过 wx.getUserProfile 接口将正常返回用户头 ...

最新文章

  1. 复杂JSON参数传递后台处理方式
  2. 查看进程运行状态的环境变量
  3. No module named 'pandads'
  4. 实例比较虚幻引擎4与光线追踪渲染
  5. LeetCode 82. 删除排序链表中的重复元素 II(链表)
  6. [转载] python之路《第二篇》Python基本数据类型
  7. 能利用计算机来模拟某种真实的实验现象,自然现象或社会现象的课件是,幼儿园课件制作教案...
  8. html设置外边距不合并,CSS外边距合并代码
  9. sklearn相关积累
  10. paip.c++ 进程间通信方法大总结
  11. 大规模机器学习:将数据科学引入生产系统架构的典型模式
  12. MongoDB+MongoVUE安装及入门
  13. Windows Server 2016 身份管理 (MCSA 认证 70-742)-李海园-专题视频课程
  14. 16张SIM卡,8路5g多卡聚合路由器5g多卡汇聚路由器,多网融合,弱网通信
  15. Hybrid接口、MSTP协议
  16. catchlog是什么软件_如何处理异常? catch Exception OR catch Throwable
  17. 在uniapp中使用element-ui组件
  18. 鸿蒙宴中的人物故事,鸿门宴简介_鸿门宴的主要人物和背景_鸿门宴的目的和结局是什么? - 趣历史...
  19. GTX960M安装tensorflow-gpu心得
  20. lis算法c语言,LCS、LIS、LICS算法

热门文章

  1. 黑客高手是这样上网的!Vimium、Vimperator 浏览器插件让你全程用键盘快捷高效浏览网页
  2. 神经网络加速器设计研究:寒武纪DianNao论文阅读
  3. Windows server 2012 R2网卡驱动安装经历
  4. 谈腾讯地图web api如何实现类似百度地图内置的城市切换、关键字输入提示功能
  5. 自由软件之“父”—Richard. M. Stallman
  6. 立潮头 筑根基 赢未来——ZDNS合作伙伴大会成功举办
  7. 利用python编写一个猜数游戏程序。由系统随机产成一个0~100之间的整数,玩家可以进行5次竞猜。如果猜对了,则提示“恭喜你,猜对了“,并结束游戏;如果猜错了,提示玩家一个方向提示,告诉玩家大了小了
  8. 如何查询硬盘序列号,百度的答案全是错的
  9. 计算机系统新手入门,电脑初学者入门教程
  10. 经常用到的七大离线仿真软件盘点