首页 > 语言 > PHP > 正文

php上传文件分类实例代码

2024-09-04 11:45:13
字体:大 中 小
来源:转载
供稿:网友
  1. <?php 
  2. /** 
  3. * 文件上传类 
  4. * @author lijiamin 
  5. * @time 2017-02-17 
  6. * @email 1195989301@qq.com 
  7. */ 
  8. classUpload{ 
  9. private$allowExt=array('gif','jpg','jpeg','bmp','png','swf');//限制文件上传的后缀名 
  10. private$maxSize= 1;//限制最大文件上传1M 
  11. /** 
  12. * 获取文件的信息 
  13. * @param str $flag 上传文件的标识 
  14. * @return arr 上传文件的信息数组 
  15. */ 
  16. publicfunctiongetInfo($flag){ 
  17. return$_FILES[$flag]; 
  18. } 
  19. /** 
  20. * 获取文件的后缀 
  21. * @param str $filename 文件名 
  22. * @return str 文件扩展名 
  23. */ 
  24. publicfunctiongetExt($filename){ 
  25. returnpathinfo($filename,PATHINFO_EXTENSION); 
  26. } 
  27. /** 
  28. * 检测上传文件是否合法 
  29. * @param str $filename 文件名 
  30. * @return bool 文件扩展名是否合法 
  31. */ 
  32. privatefunctioncheckExt($filename){ 
  33. $ext=$this->getExt($filename); 
  34. returnin_array($ext,$this->allowExt); 
  35. } 
  36. /** 
  37. * 检测文件大小是否超过限制 
  38. * @param int size 文件大小 
  39. * @return bool 文件大小是否超过限制 
  40. */ 
  41. publicfunctioncheckSize($size){ 
  42. return$size<$this->maxSize * 1024 * 1024;<!--$this---> 
  43. } 
  44. /** 
  45. * 随机的文件名 
  46. * @param int $len 随机文件名的长度 
  47. * @return str 随机字符串 
  48. */ 
  49. publicfunctionrandName($len=6){ 
  50. returnsubstr(str_shuffle('abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ234565789'),0,$len); 
  51. } 
  52. /** 
  53. * 创建文件上传到的路径 
  54. * @return str 文件上传的路径 
  55. */ 
  56. publicfunctioncreateDir(){ 
  57. //上传文件路径 
  58. $dir='./upload/'.date('Y/m/d',time()); 
  59. //判断文件夹是否存在,不存在则新建 
  60. if(is_dir($dir) ||mkdir($dir,0777,true)){ 
  61. return$dir; 
  62. } 
  63. } 
  64. /** 
  65. * 文件上传 
  66. * @param str $flag 文件上传标识 
  67. * @return array 返回上传文件名、保存路径 
  68. */ 
  69. publicfunctionuploadFile($flag){ 
  70. if($_FILES[$flag]['name'] ===''||$_FILES[$flag]['error'] !== 0){ 
  71. echo"没有上传文件"; 
  72. return; 
  73. } 
  74. $info=$this->getInfo($flag); 
  75. if(!$this->checkExt($info['name'])){ 
  76. echo"不支持的文件类型"; 
  77. return; 
  78. } 
  79. if(!$this->checkSize($info['size'])){ 
  80. echo"文件大小超过限制"; 
  81. return; 
  82. } 
  83. $filename=$this->randName().'.'.$this->getExt($info['name']); 
  84. $dir=$this->createDir(); 
  85. if(!move_uploaded_file($info['tmp_name'],$dir.'/'.$filename)){ 
  86. echo"文件上传失败"; 
  87. }else{ 
  88. returnarray('filename'=>$filename,'dir'=>$dir); 
  89. } 
  90. } 
  91. } 
  92. ?> 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表