imageUp.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. error_reporting( E_ERROR | E_WARNING );
  3. //上传配置
  4. $config = array(
  5. "uploadPath" => "upload/" , //保存路径
  6. "fileType" => array( ".gif" , ".png" , ".jpg" , ".jpeg" , ".bmp" ) , //文件允许格式
  7. "fileSize" => 1000 //文件大小限制,单位KB
  8. );
  9. //原始文件名,表单名固定,不可配置
  10. $oriName = htmlspecialchars( $_POST[ 'fileName' ] , ENT_QUOTES );
  11. //上传图片框中的描述表单名称,
  12. $title = htmlspecialchars( $_POST[ 'pictitle' ] , ENT_QUOTES );
  13. //文件句柄
  14. $file = $_FILES[ "upfile" ];
  15. //文件上传状态,当成功时返回SUCCESS,其余值将直接返回对应字符窜并显示在图片预览框,同时可以在前端页面通过回调函数获取对应字符窜
  16. $state = "SUCCESS";
  17. //重命名后的文件名
  18. $fileName = "";
  19. //保存路径
  20. $path = $config[ 'uploadPath' ];
  21. if ( !file_exists( $path ) ) {
  22. mkdir( "$path" , 0777 );
  23. }
  24. //格式验证
  25. $current_type = strtolower( strrchr( $file[ "name" ] , '.' ) );
  26. if ( !in_array( $current_type , $config[ 'fileType' ] ) || false == getimagesize( $file[ "tmp_name" ] ) ) {
  27. $state = "不允许的图片格式";
  28. }
  29. //大小验证
  30. $file_size = 1024 * $config[ 'fileSize' ];
  31. if ( $file[ "size" ] > $file_size ) {
  32. $state = "图片大小超出限制";
  33. }
  34. //保存图片
  35. if ( $state == "SUCCESS" ) {
  36. $tmp_file = $file[ "name" ];
  37. $fileName = $path . rand( 1 , 10000 ) . time() . strrchr( $tmp_file , '.' );
  38. $result = move_uploaded_file( $file[ "tmp_name" ] , $fileName );
  39. if ( !$result ) {
  40. $state = "未知错误";
  41. }
  42. }
  43. //向浏览器返回数据json数据
  44. /**
  45. * 返回数据格式
  46. * {
  47. * 'url' :'a.jpg', //保存后的文件路径
  48. * 'title' :'hello', //文件描述,对图片来说在前端会添加到title属性上
  49. * 'original' :'b.jpg', //原始文件名
  50. * 'state' :'SUCCESS' //上传状态,成功时返回SUCCESS,其他任何值将原样返回至图片上传框中
  51. * }
  52. */
  53. echo "{'url':'" . $fileName . "','title':'" . $title . "','original':'" . $oriName . "','state':'" . $state . "'}";
  54. ?>