本文實例講述了PHP多文件上傳類,分享給大家供大家參考。具體如下:
<?php class Test_Upload{ protected $_uploaded = array(); protected $_destination; protected $_max = 1024000; protected $_messages = array(); protected $_permited = array( 'image/gif', 'image/jpeg', 'image/pjpeg', 'image/png' ); protected $_renamed = false; /** * * @param mix $path * */ public function __construct($path){ if (!is_dir($path) || !is_writable($path)){ throw new Exception("文件名不可寫,或者不是目錄!"); } $this->_destination = $path; $this->_uploaded = $_FILES; } /** * 移動文件 * */ public function move(){ $filed = current($this->_uploaded); $isOk = $this->checkError($filed['name'], $filed['error']); //debug ok if ($isOk){ $sizeOk = $this->checkSize($filed['name'], $filed['size']); $typeOk = $this->checkType($filed['name'], $filed['type']); if ($sizeOk && $typeOk){ $success = move_uploaded_file($filed['tmp_name'], $this->_destination.$filed['name']); if ($success){ $this->_messages[] = $filed['name']."文件上傳成功"; }else { $this->_messages[] = $filed['name']."文件上傳失敗"; } } } } /** * 查詢messages數組內容 * */ public function getMessages(){ return $this->_messages; } /** * 檢測上傳的文件大小 * @param mix $string * @param int $size */ public function checkSize($filename, $size){ if ($size == 0){ return false; }else if ($size > $this->_max){ $this->_messages[] = "文件超出上傳限制大小".$this->getMaxsize(); return false; }else { return true; } } /** * 檢測上傳文件的類型 * @param mix $filename * @param mix $type */ protected function checkType($filename, $type){ if (!in_array($type, $this->_permited)){ $this->_messages[] = "該文件類型是不被允許的上傳類型"; return false; }else { return true; } } /** * 獲取文件大小 * */ public function getMaxsize(){ return number_format($this->_max / 1024, 1).'KB'; } /** * 檢測上傳錯誤 * @param mix $filename * @param int $error * */ public function checkError($filename, $error){ switch ($error){ case 0 : return true; case 1 : case 2 : $this->_messages[] = "文件過大!"; return true; case 3 : $this->_messages[] = "錯誤上傳文件!";return false; case 4 : $this->_messages[] = "沒有選擇文件!"; return false; default : $this->_messages[] = "系統錯誤!"; return false; } } } ?>
希望本文所述對大家的php程序設計有所幫助。