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);     }   }); }

相关内容

热门资讯

透视了解!wpk透视是真的假的... 透视了解!wpk透视是真的假的,德州局脚本,总结教程(都是有挂)-哔哩哔哩1、该软件可以轻松地帮助玩...
近日!欢乐茶馆怎么能赢,518... 近日!欢乐茶馆怎么能赢,518互游辅助,2025新版教程(都是是有挂)-哔哩哔哩亲,关键说明,欢乐茶...
透视内置!wepoker辅助器... 透视内置!wepoker辅助器软件下载(透视)开挂辅助工具(好像存在有挂)-哔哩哔哩1、实时wepo...
透视漏洞!wpk安卓下载辅助(... 透视漏洞!wpk安卓下载辅助(透视)开挂辅助器(竟然真的有挂)-哔哩哔哩1、打开软件启动之后找到中间...
透视了解!wepoker买钻石... 透视了解!wepoker买钻石有用吗,德州透视插件,步骤教程(确实是真的挂)-哔哩哔哩1、完成wep...
此事迅速冲上热搜!新老夫子脚本... 此事迅速冲上热搜!新老夫子脚本免费下载,创思维激k辅助器下载,透明教程(确实真的有挂)-哔哩哔哩1、...
透视智能!wepoker脚本(... 透视智能!wepoker脚本(透视)开挂辅助神器(真是有挂)-哔哩哔哩1、打开软件启动之后找到中间准...
透视辅助!hhpoker辅助实... 透视辅助!hhpoker辅助实战视频,佛手大菠萝13道挂哪里,指南教程(一贯真的有挂)-哔哩哔哩佛手...
相较于以往!嘟咪互动有挂吗,小... 您好,嘟咪互动有挂吗这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054】很多玩家...
透视网页版!德州圈脚本(透视)... 透视网页版!德州圈脚本(透视)开挂辅助方法(总是是真的挂)-哔哩哔哩1、完成德州圈脚本的残局,帮助玩...