首页 > 开发 > PHP > 正文

适用于初学者的简易PHP文件上传类

2024-05-04 23:39:58
字体:
来源:转载
供稿:网友

这篇文章主要为大家分享了一个适用于初学者的简易PHP文件上传类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例讲述了PHP多文件上传类,分享给大家供大家参考。具体如下:

 

 
  1. <?php 
  2. class Test_Upload{ 
  3.  
  4. protected $_uploaded = array(); 
  5. protected $_destination;  
  6. protected $_max = 1024000; 
  7. protected $_messages = array(); 
  8. protected $_permited = array( 
  9. 'image/gif'
  10. 'image/jpeg'
  11. 'image/pjpeg'
  12. 'image/png' 
  13. ); 
  14. protected $_renamed = false
  15.  
  16. /** 
  17.  
  18. * @param mix $path 
  19.  
  20. */ 
  21. public function __construct($path){ 
  22.  
  23. if (!is_dir($path) || !is_writable($path)){ 
  24. throw new Exception("文件名不可写,或者不是目录!"); 
  25. $this->_destination = $path; 
  26. $this->_uploaded = $_FILES; 
  27. /** 
  28. * 移动文件 
  29.  
  30. */ 
  31. public function move(){ 
  32.  
  33. $filed = current($this->_uploaded);  
  34.  
  35. $isOk = $this->checkError($filed['name'], $filed['error']); 
  36. //debug ok 
  37. if ($isOk){ 
  38. $sizeOk = $this->checkSize($filed['name'], $filed['size']); 
  39. $typeOk = $this->checkType($filed['name'], $filed['type']); 
  40. if ($sizeOk && $typeOk){ 
  41.  
  42. $success = move_uploaded_file($filed['tmp_name'], $this->_destination.$filed['name']); 
  43.  
  44. if ($success){ 
  45. $this->_messages[] = $filed['name']."文件上传成功"
  46. }else { 
  47. $this->_messages[] = $filed['name']."文件上传失败"
  48.  
  49. /** 
  50. * 查询messages数组内容  
  51. * 
  52. */ 
  53. public function getMessages(){ 
  54. return $this->_messages; 
  55.  
  56. /** 
  57. * 检测上传的文件大小 
  58. * @param mix $string 
  59. * @param int $size 
  60. */ 
  61. public function checkSize($filename, $size){ 
  62.  
  63. if ($size == 0){ 
  64. return false
  65. }else if ($size > $this->_max){ 
  66. $this->_messages[] = "文件超出上传限制大小".$this->getMaxsize(); 
  67. return false
  68. }else {  
  69. return true
  70.  
  71. /** 
  72. * 检测上传文件的类型 
  73. * @param mix $filename 
  74. * @param mix $type 
  75. */ 
  76. protected function checkType($filename, $type){ 
  77. if (!in_array($type, $this->_permited)){ 
  78. $this->_messages[] = "该文件类型是不被允许的上传类型"
  79. return false
  80. }else { 
  81. return true
  82.  
  83. /** 
  84. * 获取文件大小 
  85.  
  86. */ 
  87. public function getMaxsize(){ 
  88. return number_format($this->_max / 1024, 1).'KB'
  89.  
  90. /** 
  91. * 检测上传错误 
  92. * @param mix $filename 
  93. * @param int $error 
  94.  
  95. */ 
  96. public function checkError($filename, $error){ 
  97. switch ($error){ 
  98. case 0 : return true
  99. case 1 : 
  100. case 2 : $this->_messages[] = "文件过大!"return true
  101. case 3 : $this->_messages[] = "错误上传文件!";return false
  102. case 4 : $this->_messages[] = "没有选择文件!"return false
  103. default : $this->_messages[] = "系统错误!"return false
  104. ?> 

希望本文所述对大家的php程序设计有所帮助。

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