upload.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. header('content-type:text/plain;charset=utf-8');
  3. //定义站点根目录
  4. define('ROOT_PATH', str_replace("\\", '/', dirname(dirname(__FILE__))));
  5. //定义附件上传路径
  6. define('ATTACHMENTS_PATH', ROOT_PATH . "/attachments/");
  7. //判断附件文件夹是否存在,不存在则创建
  8. if (!is_dir(ATTACHMENTS_PATH)) {
  9. mkdir(ATTACHMENTS_PATH);
  10. }
  11. if ($_FILES['imgFile']['error'] > 0) {
  12. $return = array();
  13. $return['error'] = 1;
  14. $return['message'] = '上传失败';
  15. exit(json_encode($return));
  16. }
  17. //判断被上传的图片大小是否合法
  18. /**
  19. * getimagesize()根据图片的绝对路径(必须是绝对路径),获取这个图片的信息。返回的是一个数组:
  20. * 0=>图片的宽
  21. * 1=>图片的高
  22. * 2=>返回的是数字,其中1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM
  23. * 3=>height="yyy" width="xxx"
  24. * 'bits'=>给出的是图像的每种颜色的位数,二进制格式
  25. * 'channels'=>给出的是图像的通道值,RGB 图像默认是 3
  26. * 'mime'=>类似于'image/jpeg'的MIME信息
  27. */
  28. $source_info = getimagesize($_FILES['imgFile']['tmp_name']);
  29. if (isset($_REQUEST['minWidth'])) {
  30. if ($source_info[0] < $_REQUEST['minWidth']) {
  31. $return = array();
  32. $return['error'] = 1;
  33. $return['message'] = '图片尺寸太小';
  34. exit(json_encode($return));
  35. }
  36. }
  37. if (isset($_REQUEST['minHeight'])) {
  38. if ($source_info[1] < $_REQUEST['minHeight']) {
  39. $return = array();
  40. $return['error'] = 1;
  41. $return['message'] = '图片尺寸太小';
  42. exit(json_encode($return));
  43. }
  44. }
  45. //获取后缀名(这里不用$_FILES["imgFile"]["type"]去获取文件的MIME类型来判断文件格式,因为flash上传文件的MIME类型统一都是"application/octet-stream")
  46. //$suffix = '.' . pathinfo($_FILES['imgFile']['name'])['extension']; //$_FILES['imgFile']['name']是上传文件的原始文件名称
  47. $pathinfo = pathinfo($_FILES['imgFile']['name']);
  48. $suffix = '.' . $pathinfo['extension']; //$_FILES['imgFile']['name']是上传文件的原始文件名称
  49. if (is_uploaded_file($_FILES['imgFile']['tmp_name'])) {
  50. $src = uniqid() . $suffix;
  51. if (!move_uploaded_file($_FILES['imgFile']['tmp_name'], ATTACHMENTS_PATH . $src)) {
  52. $return = array();
  53. $return['error'] = 1;
  54. $return['message'] = '上传失败';
  55. exit(json_encode($return));
  56. } else {
  57. $return = array();
  58. $return['error'] = 0;
  59. $return['message'] = '上传成功';
  60. $return['url'] = "/attachments/" . $src;
  61. $return['source_path'] = ATTACHMENTS_PATH . $src;
  62. if (isset($_REQUEST['uid'])) {
  63. $return['uid'] = $_REQUEST['uid'];
  64. }
  65. exit(json_encode($return));
  66. }
  67. }