mysql 存储用户头像_微信授权后用户头像保存到服务器实现方法
本文主要和大家分享微信授权后用户头像保存到服务器实现方法,最近做一个有关微信授权登录的项目,关于授权就不多说了,我获取到用户基本信息,格式如下:$user_info = '{"openid":"xx","nickname":"nice花椒.","sex":2,"language":"zh_CN","city":"杭州","province":"浙江","country":"中国","headimgurl":"http:\/\/wx.qlogo.cn\/mmopen\/vi_32\/Q0j4TwGTfTJPpziaqOoIpGia9ZVj9fheAwLmTiavV4rxR40NQ1zPQPyiaMY58FEISDIfpn0q5VeeXliaKyiaiabgK2ZHg\/0","privilege":[]}';
直接把headimgurl入库保存,bug来了。
话不多说,进入正题:
微信返回的是json格式$user_arr = json_decode($user_info, true);
获取用户openid对比数据库,判断是不是首次授权$mem_info= $member->getuserinfo(array('openid'=>$user_arr['openid']));
首次授权或者头像链接地址与上次不同if(!$mem_info || $mem_info['wximage']!=$user_info['headimg']){
$headimgurl = saveheadimgurl($user_arr['headimgurl']);
$headimg ? 0 : $headimg='lib/avata.jpg' ;
if($mem_info['wximage']!=$user_info['headimg']){
unlink($mem_info['headimg']);
}
//快来写你的注册或者修改代码吧!
}
保存图片function saveheadimgurl($headimg){
$header = array(
'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0',
'Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding: gzip, deflate',
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $headimg);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_HTTPHEADER,$header);
$dataimg = curl_exec($curl);
$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($code == 200) {
$imgBase64Code = "data:image/jpeg;base64," . base64_encode($dataimg);
}
$img_content=$imgBase64Code;
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $img_content, $result)){
$type = $result[2];
create(DOFILESPATH."head");
$new_file = DOFILESPATH."head/".md5(uniqid(rand())).".{$type}";
if (file_put_contents($new_file, base64_decode(str_replace($result[1],'', $img_content))))
{
return $new_file;
}
}
return false;
}
指定位置创建文件function create($dir){
if(is_dir($dir)){
$temp = explode('/',$dir);
$cur_dir = '';
for($i=0; $i
$cur_dir .= $temp[$i].'/';
if(!is_dir($cur_dir)){
@mkdir($cur_dir,777);
}
}
}
}
希望对大家有用。
相关推荐:
mysql 存储用户头像_微信授权后用户头像保存到服务器实现方法相关推荐
- java用户头像保存_微信授权后获取用户头像保存到服务器
最近做一个有关微信授权登录的项目,关于授权就不多说了,我获取到用户基本信息,格式如下: $user_info = '{"openid":"xx","n ...
- 微信授权-获取微信授权后用户信息
微信授权登陆: 我采用的是自定义的子菜单:登陆微信公众平台 第一步:用户同意授权.获取code 第二步:通过code换取网页授权access_token 详细步骤参考微信公众号平台 在页面地址输入授权 ...
- java获取网络图片(比如微信授权后的头像)上传至linux服务器
//原生获取微信信息CodeWxUserInfoVo,然后将头像上传至自己的linux服务器 //因为上传用的是 MultipartFile file所以我下载图片后返回了MultipartFile文 ...
- 微信开发_网页授权获取用户的基本信息
如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于OAuth2.0的说明 官方网站:http://oauth.net/ http:/ ...
- mysql和oracle用户管理_五种Oracle用户的授权与管理
创建和删除用户是Oracle用户管理中的常见操作,但这其中隐含了Oracle数据库系统的系统权限与对象权限方面的知识.掌握还Oracle用 创建和删除用户是Oracle用户管理中的常见操作,但这其中隐 ...
- uniapp同步获取用户信息_微信小程序云开发教程微信小程序的API入门获取用户身份信息系列API...
同学们大家好,我是小伊同学,上一节我们介绍了一些常用API,今天我们接着来学习一组API,那就是获取用户身份信息的API. 在微信小程序中,我们往往需要获取用户的身份信息,比如昵称.头像.性别.地区等 ...
- code换取微信openid_JSamp;微信_微信授权
微信api 授权demo 获取openid --- snsapi_base 获取用户信息 --- snsapi_userinfo 1.前置条件 服务号(企业) -- 通过微信认证 可以在微信公众平台- ...
- webform窗体怎么实现session唯一标识_微信小程序用户登录和登录态维护的实现_javascript技巧...
这篇文章主要介绍了微信小程序用户登录和登录态维护的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 让用户登录,标识用户和获取 ...
- android 微信授权获取用户个人信息
微信官方文档API:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Login/Development_Guide.h ...
- 微信小程序python解析获取用户手机号_微信小程序获取用户手机号
获取微信用户绑定的手机号,需先调用wx.login接口. 小程序获取code. 后台得到session_key,openid. 组件触发getPhoneNumber 因为需要用户主动触发才能发起获取手 ...
最新文章
- 【2018.12.15】【考试总结】【模拟+逆序对+树状数组+贪心+multiset】爆零之旅
- android 学习随笔二十(多媒体编程 )
- java 随机数种子_Java--随机数和随机数种子(转)
- es6 Generator.prototype.return()方法
- 使用CablleStatement调用存储过程
- 18 Python 模块引入
- c# 鼠标控制图片大小
- Eclipse用法和技巧六:自动生成get和set方法1
- 如何高度自适应_精准放疗:TOMO如何做到自适应放疗?
- Android系统Recovery工作原理之使用update.zip升级过程分析(一)
- LM7805:电压调节器的工作原理
- 计算机里什么是目录,c盘perflogs是什么文件夹_电脑中perflogs文件夹能删除吗-win7之家...
- JavaEE - 集合 - Collection集合
- OpenStreetMap地图服务器安装
- icodelab 取走的弹珠(多组数据)
- php验证邮编,常用的js验证数字,电话号码,传真,邮箱,手机号码,邮编,日期...
- 无边落木萧萧下,不尽长江滚滚来。
- Keil MDK 安装pack包
- mysql和高斯DB的区别
- SSM整合Ueditor的上传图片功能常见错误解决办法
热门文章
- 虚拟机服务器ip端口映射,VMware虚拟机配置端口转发(端口映射),实现远程访问【转】...
- java的编译路径在哪_如何知道我的java编译器的路径
- 绘制自己的人际关系图_攒人脉,建圈子,从绘制一张人际关系图开始。
- data fastboot 擦除_fastboot使用教程
- 计算机无法显示外接硬盘,移动硬盘不显示怎么办解决教程
- Android自学视频百度网盘链接
- android10 谷歌服务框架,google服务框架下载官方版
- 【RemoteJoy】PSP图像采集方案
- iPhone5捣鼓mobile terminal
- 微信小程序中使用vue-star