您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關利用php如何實現分類上傳文件,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
具體代碼如下所示:
<?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); } } } ?>
關于利用php如何實現分類上傳文件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。