本文主要和大家分享微信授权后用户头像保存到服务器实现方法,最近做一个有关微信授权登录的项目,关于授权就不多说了,我获取到用户基本信息,格式如下:$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 存储用户头像_微信授权后用户头像保存到服务器实现方法相关推荐

  1. java用户头像保存_微信授权后获取用户头像保存到服务器

    最近做一个有关微信授权登录的项目,关于授权就不多说了,我获取到用户基本信息,格式如下: $user_info = '{"openid":"xx","n ...

  2. 微信授权-获取微信授权后用户信息

    微信授权登陆: 我采用的是自定义的子菜单:登陆微信公众平台 第一步:用户同意授权.获取code 第二步:通过code换取网页授权access_token 详细步骤参考微信公众号平台 在页面地址输入授权 ...

  3. java获取网络图片(比如微信授权后的头像)上传至linux服务器

    //原生获取微信信息CodeWxUserInfoVo,然后将头像上传至自己的linux服务器 //因为上传用的是 MultipartFile file所以我下载图片后返回了MultipartFile文 ...

  4. 微信开发_网页授权获取用户的基本信息

    如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于OAuth2.0的说明 官方网站:http://oauth.net/   http:/ ...

  5. mysql和oracle用户管理_五种Oracle用户的授权与管理

    创建和删除用户是Oracle用户管理中的常见操作,但这其中隐含了Oracle数据库系统的系统权限与对象权限方面的知识.掌握还Oracle用 创建和删除用户是Oracle用户管理中的常见操作,但这其中隐 ...

  6. uniapp同步获取用户信息_微信小程序云开发教程微信小程序的API入门获取用户身份信息系列API...

    同学们大家好,我是小伊同学,上一节我们介绍了一些常用API,今天我们接着来学习一组API,那就是获取用户身份信息的API. 在微信小程序中,我们往往需要获取用户的身份信息,比如昵称.头像.性别.地区等 ...

  7. code换取微信openid_JSamp;微信_微信授权

    微信api 授权demo 获取openid --- snsapi_base 获取用户信息 --- snsapi_userinfo 1.前置条件 服务号(企业) -- 通过微信认证 可以在微信公众平台- ...

  8. webform窗体怎么实现session唯一标识_微信小程序用户登录和登录态维护的实现_javascript技巧...

    这篇文章主要介绍了微信小程序用户登录和登录态维护的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 让用户登录,标识用户和获取 ...

  9. android 微信授权获取用户个人信息

    微信官方文档API:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Login/Development_Guide.h ...

  10. 微信小程序python解析获取用户手机号_微信小程序获取用户手机号

    获取微信用户绑定的手机号,需先调用wx.login接口. 小程序获取code. 后台得到session_key,openid. 组件触发getPhoneNumber 因为需要用户主动触发才能发起获取手 ...

最新文章

  1. 【2018.12.15】【考试总结】【模拟+逆序对+树状数组+贪心+multiset】爆零之旅
  2. android 学习随笔二十(多媒体编程 )
  3. java 随机数种子_Java--随机数和随机数种子(转)
  4. es6 Generator.prototype.return()方法
  5. 使用CablleStatement调用存储过程
  6. 18 Python 模块引入
  7. c# 鼠标控制图片大小
  8. Eclipse用法和技巧六:自动生成get和set方法1
  9. 如何高度自适应_精准放疗:TOMO如何做到自适应放疗?
  10. Android系统Recovery工作原理之使用update.zip升级过程分析(一)
  11. LM7805:电压调节器的工作原理
  12. 计算机里什么是目录,c盘perflogs是什么文件夹_电脑中perflogs文件夹能删除吗-win7之家...
  13. JavaEE - 集合 - Collection集合
  14. OpenStreetMap地图服务器安装
  15. icodelab 取走的弹珠(多组数据)
  16. php验证邮编,常用的js验证数字,电话号码,传真,邮箱,手机号码,邮编,日期...
  17. 无边落木萧萧下,不尽长江滚滚来。
  18. Keil MDK 安装pack包
  19. mysql和高斯DB的区别
  20. SSM整合Ueditor的上传图片功能常见错误解决办法

热门文章

  1. 虚拟机服务器ip端口映射,VMware虚拟机配置端口转发(端口映射),实现远程访问【转】...
  2. java的编译路径在哪_如何知道我的java编译器的路径
  3. 绘制自己的人际关系图_攒人脉,建圈子,从绘制一张人际关系图开始。
  4. data fastboot 擦除_fastboot使用教程
  5. 计算机无法显示外接硬盘,移动硬盘不显示怎么办解决教程
  6. Android自学视频百度网盘链接
  7. android10 谷歌服务框架,google服务框架下载官方版
  8. 【RemoteJoy】PSP图像采集方案
  9. iPhone5捣鼓mobile terminal
  10. 微信小程序中使用vue-star