avatar.action.php 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | FANWE 直播系统
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2011 http://www.fanwe.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Author: 云淡风轻(1956838968@qq.com)
  8. // +----------------------------------------------------------------------
  9. class avatarModule
  10. {
  11. /**
  12. * 会员头像更新接口
  13. */
  14. public function upload()
  15. {
  16. if($GLOBALS['user_info']['id']==0)
  17. {
  18. $data['status'] = 0; //未登录
  19. $data['error'] = "请先登录";
  20. ajax_return($data);
  21. }
  22. // 开始上传
  23. // 创建avatar临时目录
  24. if (!is_dir(APP_ROOT_PATH."public/attachment/temp/")) {
  25. @mkdir(APP_ROOT_PATH."public/attachment/temp/");
  26. @chmod(APP_ROOT_PATH."public/attachment/temp/", 0777);
  27. }
  28. $img_result = save_image_upload ( $_FILES, "file", "attachment/temp", $whs = array (
  29. 'small' => array (
  30. 48,
  31. 48,
  32. 1,
  33. 0
  34. ),
  35. 'big' => array (
  36. 600,
  37. 600,
  38. 0,
  39. 0
  40. )
  41. ) );
  42. // 开始移动图片到相应位置
  43. $id = $GLOBALS['user_info']['id'];
  44. $dir_name = to_date(get_gmtime(),"Ym");
  45. if (!is_dir(APP_ROOT_PATH."public/attachment/".$dir_name)) {
  46. @mkdir(APP_ROOT_PATH."public/attachment/".$dir_name);
  47. @chmod(APP_ROOT_PATH."public/attachment/".$dir_name, 0777);
  48. }
  49. $dir_name = $dir_name."/".to_date(get_gmtime(),"d");
  50. if (!is_dir(APP_ROOT_PATH."public/attachment/".$dir_name)) {
  51. @mkdir ( APP_ROOT_PATH . "public/attachment/".$dir_name);
  52. @chmod ( APP_ROOT_PATH . "public/attachment/".$dir_name, 0777);
  53. }
  54. $dir_name = $dir_name."/".to_date(get_gmtime(),"H");
  55. if (!is_dir(APP_ROOT_PATH."public/attachment/".$dir_name)) {
  56. @mkdir(APP_ROOT_PATH."public/attachment/".$dir_name);
  57. @chmod(APP_ROOT_PATH."public/attachment/".$dir_name, 0777);
  58. }
  59. $save_rec_Path = "/public/attachment/".$dir_name."/origin/"; //上传时先存放原图
  60. $savePath = APP_ROOT_PATH."public/attachment/".$dir_name."/origin/"; //绝对路径
  61. if (!is_dir(APP_ROOT_PATH."public/attachment/".$dir_name."/origin/")) {
  62. @mkdir(APP_ROOT_PATH."public/attachment/".$dir_name."/origin/");
  63. @chmod(APP_ROOT_PATH."public/attachment/".$dir_name."/origin/", 0777);
  64. }
  65. //文件名
  66. $save_name= get_gmtime().$id.".jpg";
  67. $save_thumb_name= "thumb_".get_gmtime().$id.".jpg";
  68. //相对路径
  69. $image_file_domain = ".".$save_rec_Path.$save_name;
  70. $image_file_thumb_domain = ".".$save_rec_Path.$save_thumb_name;
  71. //服务器路径
  72. $image_big_file =$savePath.$save_name;
  73. $image_small_file =$savePath.$save_thumb_name;
  74. //保存文件
  75. @file_put_contents ( $image_big_file, file_get_contents ( $img_result ['file'] ['thumb'] ['big'] ['path'] ) );
  76. @file_put_contents ( $image_small_file, file_get_contents ( $img_result ['file'] ['thumb'] ['small'] ['path'] ) );
  77. if($GLOBALS['distribution_cfg']['OSS_TYPE']&&$GLOBALS['distribution_cfg']['OSS_TYPE']!='NONE')
  78. {
  79. syn_to_remote_image_server($image_file_domain,false);
  80. syn_to_remote_image_server($image_file_thumb_domain,false);
  81. }
  82. @unlink ( $img_result ['file'] ['thumb'] ['big'] ['path'] );
  83. @unlink ( $img_result ['file'] ['thumb'] ['small'] ['path'] );
  84. @unlink ( $img_result ['file'] ['path'] );
  85. $status = $GLOBALS['db']->query("update ".DB_PREFIX."user set head_image = '".$image_file_domain."', thumb_head_image = '".$image_file_thumb_domain."' where id =". $GLOBALS['user_info']['id']);
  86. if($status){
  87. //更新session
  88. $user_info = $GLOBALS['db']->getRow("select * from ".DB_PREFIX."user where id =".$id);
  89. es_session::set("user_info", $user_info);
  90. $root['user_info']['user_id'] =$user_info['id'];
  91. $root['user_info']['nick_name'] =$user_info['nick_name'];
  92. $root['user_info']['mobile'] =$user_info['mobile'];
  93. $root['user_info']['head_image'] =get_spec_image($user_info['head_image']);
  94. //redis 更新
  95. fanwe_require(APP_ROOT_PATH.'/mapi/lib/redis/BaseRedisService.php');
  96. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
  97. $user_redis = new UserRedisService();
  98. $data['head_image'] =$image_file_domain;
  99. $data['thumb_head_image'] =$image_file_thumb_domain;
  100. $list = $user_redis->update_db($GLOBALS['user_info']['id'],$data);
  101. $root['status'] = 1;
  102. $root['error'] = '上传成功';
  103. }else{
  104. $root['status'] = 0;
  105. $root['error'] = '上传失败';
  106. }
  107. ajax_return($root);
  108. }
  109. /**
  110. * 通用上传图片接口
  111. */
  112. function uploadImage()
  113. {
  114. // 创建temp临时目录
  115. $save_rec_temp = "/public/attachment/temp/";
  116. $savePath_temp = APP_ROOT_PATH."public/attachment/temp/";
  117. if (!is_dir(APP_ROOT_PATH."public/attachment/temp/")) {
  118. @mkdir(APP_ROOT_PATH."public/attachment/temp/");
  119. @chmod(APP_ROOT_PATH."public/attachment/temp/", 0777);
  120. }
  121. // 开始上传
  122. $img_result = save_image_upload ($_FILES, "file", "attachment/temp", $whs = array ('origin' => array (600,600,0,0) ) );
  123. // 开始移动图片到相应位置
  124. $dir_name = to_date(get_gmtime(),"Ym");
  125. if (!is_dir(APP_ROOT_PATH."public/attachment/".$dir_name)) {
  126. @mkdir(APP_ROOT_PATH."public/attachment/".$dir_name);
  127. @chmod(APP_ROOT_PATH."public/attachment/".$dir_name, 0777);
  128. }
  129. $dir_name = $dir_name."/".to_date(get_gmtime(),"d");
  130. if (!is_dir(APP_ROOT_PATH."public/attachment/".$dir_name)) {
  131. @mkdir(APP_ROOT_PATH."public/attachment/".$dir_name);
  132. @chmod(APP_ROOT_PATH."public/attachment/".$dir_name, 0777);
  133. }
  134. $dir_name = $dir_name."/".to_date(get_gmtime(),"H");
  135. if (!is_dir(APP_ROOT_PATH."public/attachment/".$dir_name)) {
  136. @mkdir(APP_ROOT_PATH."public/attachment/".$dir_name);
  137. @chmod(APP_ROOT_PATH."public/attachment/".$dir_name, 0777);
  138. }
  139. $save_rec_Path = "/public/attachment/".$dir_name."/origin/"; //上传时先存放原图
  140. $savePath = APP_ROOT_PATH."public/attachment/".$dir_name."/origin/"; //绝对路径
  141. if (!is_dir(APP_ROOT_PATH."public/attachment/".$dir_name."/origin/")) {
  142. @mkdir(APP_ROOT_PATH."public/attachment/".$dir_name."/origin/");
  143. @chmod(APP_ROOT_PATH."public/attachment/".$dir_name."/origin/", 0777);
  144. }
  145. $id = trim($GLOBALS['user_info']['id']);
  146. if(!$id){
  147. $id =rand(1000,9999);
  148. }
  149. $save_name= get_gmtime().$id.".jpg";
  150. $image_file_domain = ".".$save_rec_Path.$save_name;
  151. $image_file =$savePath.$save_name;
  152. @file_put_contents ( $image_file, file_get_contents ( $img_result ['file']['path'] ) ); //使用原图
  153. //@file_put_contents ( $image_file, file_get_contents ( $img_result ['file'] ['thumb'] ['origin'] ['path'] ) );// 使用 600*600px的缩略图
  154. if($GLOBALS['distribution_cfg']['OSS_TYPE']&&$GLOBALS['distribution_cfg']['OSS_TYPE']!='NONE')
  155. {
  156. //false 代表不删除服务器图片
  157. syn_to_remote_image_server($image_file_domain,false);
  158. }
  159. @unlink ( $img_result ['file'] ['thumb'] ['origin'] ['path'] );
  160. @unlink ( $img_result ['file'] ['path'] );
  161. if(file_exists($image_file)){
  162. $root['status'] = 1;
  163. $root['error'] = '上传成功';
  164. $root['path'] = $image_file_domain;
  165. $root['server_full_path'] = get_spec_image($image_file_domain);
  166. }else{
  167. $root['status'] = 0;
  168. $root['error'] = '上传失败';
  169. $root['path'] ='';
  170. }
  171. ajax_return($root);
  172. }
  173. }
  174. ?>