????:/** * @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){ //判斷文件是否有錯(cuò)誤,error 等于0 表示沒有錯(cuò)誤 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); } //生成隨機(jī)文件名 uniqid生成一個(gè)唯一id microtime 返回當(dāng)前 Unix 時(shí)間戳和微秒數(shù) $uniName = md5(uniqid(microtime(true),true)); $dest = $uploadPath.DIRECTORY_SEPARATOR.$uniName.'.'.$ext; echo $dest; //移動(dòng)文件 只有上傳的文件才能用該函數(shù) if(move_uploaded_file($fileInfo['tmp_name'],$dest)){ return '文件上傳成功!'; } return '文件上傳失??!'; }else{ $res = ''; switch($fileInfo['error']){ case 1: $res = '超過了php配置文件中upload_max_filesize選項(xiàng)中的值'; break; case 2: $res = '超過了表單max_file_size選項(xiàng)的值'; break; case 3: $res = '文件部分被上傳'; break; case 4: $res = '沒有選擇上傳文件'; break; case 6: case 7: $res = '系統(tǒng)錯(cuò)誤'; break; } return $res; } }
?? ???:天蓬老師?? ??:2019-03-02 15:41:26
???? ??:這個(gè)封裝,功能很完整呢, 特別是對上傳錯(cuò)誤的判斷,非常齊全