abstract:/** * @param $fileInfo 文件信息 * @param string $uploadPath 文件到的目录 * @param bool $imageFlag 是否检查图片 * @
/** * @param $fileInfo 文件信息 * @param string $uploadPath 文件到的目录 * @param bool $imageFlag 是否检查图片 * @param array $allowExt 规定的文件类型 * @param int $maxSize 最大大小设置 */ 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 时间戳和微秒数 $uniName = md5(uniqid(microtime(true),true)); $dest = $uploadPath.DIRECTORY_SEPARATOR.$uniName.'.'.$ext; echo $dest; //移动文件 只有上传的文件才能用该函数 if(move_uploaded_file($fileInfo['tmp_name'],$dest)){ return '文件上传成功!'; } return '文件上传失败!'; }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 = '系统错误'; break; } return $res; } }
Correcting teacher:天蓬老师Correction time:2019-03-02 15:41:26
Teacher's summary:这个封装,功能很完整呢, 特别是对上传错误的判断,非常齐全