useruploadicon.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. /**
  3. * 玩家上传头像
  4. */
  5. $retData = array('code' => -1);
  6. $allowSize = 200 * 1024;
  7. $allowFileType = array('jpg', 'png', 'jpeg');
  8. $signKey = "%^(sa)-#$9988@&";
  9. //请求参数
  10. $uid = max( 0, (int)$_REQUEST['uid']);
  11. $sid = max( 0, (int)$_REQUEST['sid']);
  12. if( !$uid ){
  13. die(json_encode($retData));
  14. }
  15. require_once( '../config/config.sids.php' );
  16. if ( !array_key_exists($sid, $config['sidlist']) ) {
  17. $retData['code'] = -2;
  18. die(json_encode($retData));
  19. }
  20. $time = $_REQUEST['time'];
  21. $sign = $_REQUEST['sign'];
  22. $md5 = md5( $uid . '|' . $sid . '|' . $time . $signKey);
  23. if ( $sign != $md5 ) {
  24. $retData['code'] = -3;
  25. $retData['uid'] = $uid;
  26. $retData['sid'] = $sid;
  27. $retData['time'] = $time;
  28. $retData['md5'] = $md5;
  29. die(json_encode($retData));
  30. }
  31. //判断图片类型
  32. $fileType = strtolower( trim( substr( strrchr( $_FILES['upload']['name'], '.'), 1)));
  33. if( ! in_array( $fileType, $allowFileType)){
  34. $retData['code'] = -4;
  35. die(json_encode($retData));
  36. }
  37. //判断图片大小
  38. $size = max( 0, (int)$_FILES['upload']['size']);
  39. if( $size > $allowSize){
  40. $retData['code'] = -5;
  41. die(json_encode($retData));
  42. }
  43. //按用戶uid分子目錄
  44. $subname = $uid % 100;
  45. $demo = $_REQUEST['demo'] ?? 0;
  46. $userIconDir = $demo ? '/data/wwwroot/texas/usericon/' : '/data/texas/usericon/';
  47. if( !is_dir($userIconDir) ){
  48. mkdir( $userIconDir, 0777);
  49. }
  50. $dirName = $userIconDir.$subname.'/';
  51. if(!is_dir( $dirName))
  52. {
  53. mkdir( $dirName, 0777);
  54. }
  55. $time = time();
  56. $newName = $dirName . $uid . '-' . $time . '.png';
  57. $tmp_name = $_FILES["upload"]["tmp_name"];
  58. if ( file_exists( $newName)) {
  59. unlink( $newName);
  60. }
  61. if(( function_exists( 'move_uploaded_file') && move_uploaded_file( $tmp_name, $newName)))
  62. {
  63. $retData['code'] = 1;
  64. $retData['iconname'] = $uid.'-'.$time . '.png';
  65. die(json_encode($retData));
  66. }
  67. $retData['code'] = -6;
  68. die(json_encode($retData));