uniapp微信小程序开发踩坑日记:获取用户头像并持久化存储到后端服务器
创始人
2025-01-20 00:32:49
0

用户头像昵称获取规则的调整

原来获取用户头像和昵称调用的是uni.getUserInfo(OBJECT)接口,但是2021年4月28日24时后发布的小程序新版本,无法通过uni.getUserInfo与 //css部分 .avatar { position: relative; width: 120rpx; height: 120rpx; border-radius: 50%; background-color: #eee; } .avatarImg { position: absolute; left: 0; top: 0; width: 120rpx; height: 120rpx; border-radius: 50%; background-color: #eee; }

将头像持久化存储到后端

虽然e.detail.avatarUrl存储了用户的新头像,比如:http://tmp_223cd440990786c338a5610060d4e96aeda77d2678920.jpg

但是这只是微信的一个临时文件,如果直接将这段路径以字符串的形式存储到后端服务器,那下次获取到头像的时候可能该临时文件已经失效,导致头像无法正常渲染,失效时返回的路径是wxfile://tmp_223cd440990786c338a5610060d4e96aeda77d2678920.jpg,这样的文件在渲染时会出现下图所示的报错

所以我们需要在文件失效之前,将文件保存到后端服务器

这就涉及到一个新的API:uni.uploadFile(OBJECT)

具体使用方法见官方文档:uni.uploadFile(OBJECT) | uni-app官网 (dcloud.net.cn)

所以在onChooseAvatar函数中,除了完成avatarUrl.value = e.detail.avatarUrl的赋值操作,我们还可以把图片保存到后端服务器,具体代码如下

//设置用户头像 const onChooseAvatar = e => {   avatarUrl.value = e.detail.avatarUrl   //将头像保存到后端   uni.uploadFile({     url: '后端服务器地址',     filePath: avatarUrl.value, //头像文件     header: {       请求Header     },     formData: { 	  请求中其他额外的formdata,不是必填项 	},     name: '文件对应的 key,开发者在服务器端通过这个key可以获取到文件二进制内容',     success: (uploadFileRes) => {       console.log(uploadFileRes.data);     }   }); }

相关内容

热门资讯

透视辅助(德州wepower)... 透视辅助(德州wepower)德扑数据软件(透视)都是有挂(详细辅助线上教程);该软件可以轻松地帮助...
透视计算(Wpk)微扑克辅助器... 透视计算(Wpk)微扑克辅助器ios(透视)详细辅助2025新版技巧(果然是有挂)微扑克辅助器ios...
aapoker辅助!aapok... aapoker辅助!aapoker透明挂多久被封,(aaPoker)竟然真的有挂(详细辅助系统教程)...
透视新版(德州扑克)德州微扑克... 透视新版(德州扑克)德州微扑克辅助(透视)本来存在有挂(详细辅助可靠技巧)1、任何德州微扑克辅助ai...
透视总结(Wpk)wpk真的有... 透视总结(Wpk)wpk真的有外挂(透视)详细辅助存在挂教程(好像是有挂)wpk真的有外挂辅助器中分...
aapoker辅助!aapok... aapoker辅助!aapoker发牌规律,(AAPoker)确实是有挂(详细辅助总结教程);1、很...
透视脚本(德州nzt)德州之星... 透视脚本(德州nzt)德州之星辅助(透视)切实真的是有挂(详细辅助爆料教程)亲,关键说明,德州之星辅...
透视系统(微扑克)微扑克辅助机... 透视系统(微扑克)微扑克辅助机器人(透视)详细辅助黑科技教程(切实真的有挂)1、透视系统(微扑克)微...
aapoker透视辅助!aap... aapoker透视辅助!aapoker辅助软件,(AAPOKEr)总是存在有挂(详细辅助力荐教程)1...
透视代打(德州俱乐部)德扑ai... 透视代打(德州俱乐部)德扑ai智能(透视)一贯真的有挂(详细辅助必胜教程);透视代打(德州俱乐部)德...