php檔案上傳分類

來源:互聯網
上載者:User
<?php/*** 檔案上傳類* @author lijiamin* @time 2017-02-17* @email 1195989301@qq.com*/class Upload{private $allowExt = array('gif','jpg','jpeg','bmp','png','swf');//限制檔案上傳的尾碼名private $maxSize = 1;//限制最大檔案上傳1M/*** 擷取檔案的資訊* @param str $flag 上傳檔案的標識* @return arr 上傳檔案的資訊數組*/public function getInfo($flag){return $_FILES[$flag];}/*** 擷取檔案的尾碼* @param str $filename 檔案名稱* @return str 副檔名*/public function getExt($filename){return pathinfo($filename,PATHINFO_EXTENSION);}/*** 檢測上傳檔案是否合法* @param str $filename 檔案名稱* @return bool 副檔名是否合法*/private function checkExt($filename){$ext = $this->getExt($filename);return in_array($ext,$this->allowExt);}/*** 檢測檔案大小是否超過限制* @param int size 檔案大小* @return bool 檔案大小是否超過限制*/public function checkSize($size){return $size < $this->maxSize * 1024 * 1024;}/*** 隨機的檔案名稱* @param int $len 隨機檔案名稱的長度* @return str 隨機字串*/public function randName($len=6){return substr(str_shuffle('abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ234565789'),0,$len);}/*** 建立檔案上傳到的路徑* @return str 檔案上傳的路徑*/ public function createDir(){//上傳檔案路徑$dir = './upload/'.date('Y/m/d',time());//判斷檔案夾是否存在,不存在則建立if(is_dir($dir) || mkdir($dir,0777,true)){return $dir;}}/*** 檔案上傳* @param str $flag 檔案上傳標識* @return array 返回上傳檔案名稱、儲存路徑*/public function uploadFile($flag){if($_FILES[$flag]['name'] === '' || $_FILES[$flag]['error'] !== 0){echo "沒有上傳檔案";return;}$info = $this->getInfo($flag);if(!$this->checkExt($info['name'])){echo "不支援的檔案類型";return;}if(!$this->checkSize($info['size'])){echo "檔案大小超過限制";return;}$filename = $this->randName().'.'.$this->getExt($info['name']);$dir = $this->createDir();if(!move_uploaded_file($info['tmp_name'], $dir.'/'.$filename)){echo "檔案上傳失敗";}else{return array('filename'=>$filename,'dir'=>$dir);}}}?>


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.