サマリー:/** * @param $fileInfo 文件信息 * @param string $uploadPath 文件到的目錄 * @param bool $imageFlag 是否檢查圖片 * @
/** * @param $fileInfo 文件信息 * @param string $uploadPath 文件到的目錄 * @param bool $imageFlag 是否檢查圖片 * @param array $allowExt 規(guī)定的文件類型 * @param int $maxSize 最大大小設(shè)置 */ function upload_file($fileInfo,$uploadPath = './upload',$imageFlag = true , $allowExt = ['jpg', 'png', 'jpeg', 'gif', 'txt'], $maxSize = 2097152){ //判斷文件是否有錯誤,error 等于0 表示沒有錯誤 if($fileInfo['error'] == 0){ //截取上傳文件的后綴 $ext = strtolower(pathinfo($fileInfo['name'],PATHINFO_EXTENSION)); //判斷上傳的文件是否符合類型 if(!in_array($ext,$allowExt)){ return "文件類型不符"; } //判斷上傳的大小是否符合 if($maxSize - $fileInfo['size'] < 0){ return "文件大小超出"; } //判斷是否有upload目錄 if(!is_dir($uploadPath)){ mkdir($uploadPath,0777,true); } //生成隨機文件名 uniqid生成一個唯一id microtime 返回當前 Unix 時間戳和微秒數(shù) $uniName = md5(uniqid(microtime(true),true)); $dest = $uploadPath.DIRECTORY_SEPARATOR.$uniName.'.'.$ext; echo $dest; //移動文件 只有上傳的文件才能用該函數(shù) if(move_uploaded_file($fileInfo['tmp_name'],$dest)){ return '文件上傳成功!'; } return '文件上傳失?。?#39;; }else{ $res = ''; switch($fileInfo['error']){ case 1: $res = '超過了php配置文件中upload_max_filesize選項中的值'; break; case 2: $res = '超過了表單max_file_size選項的值'; break; case 3: $res = '文件部分被上傳'; break; case 4: $res = '沒有選擇上傳文件'; break; case 6: case 7: $res = '系統(tǒng)錯誤'; break; } return $res; } }
添削の先生:天蓬老師添削時間:2019-03-02 15:41:26
先生のまとめ:這個封裝,功能很完整呢, 特別是對上傳錯誤的判斷,非常齊全