批改状态:合格
老师批语:

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>文件上传</title></head><body><form action="upload2.php" method="post" enctype="multipart/form-data"><fieldset><legend>单文件上传</legend><label for="my_file"></label><input type="file" name="my_file" id="my_file"><button>上传</button></fieldset></form></body></html>
<?phpecho '<pre>';var_dump(uploadFile($_FILES['my_file']));function uploadFile($fileInfo,$uploadPath='./uploads',$flag=true,$allowExt=['jpg','png','wbmp','gif','jpeg','bmp'],$maxSize=2097152){if($fileInfo['error'] == 0){$arr = explode('.',$fileInfo['name']);//explode 分割字符串,以(.)点,分割// var_dump($arr);$ext = end($arr); //取后缀$prefix = array_shift($arr); //取文件名if(!in_array($ext,$allowExt)){//判断后缀是否存在return $res = '文件类型不合法';}if($fileInfo['size'] > $maxSize){ //判断文件大小return $res = '文件大小超过限制的最大值';}if(!getimageSize($fileInfo['tmp_name'])){//检测图片是否合法return $res = '不是真实图片';}if(!is_uploaded_file($fileInfo['tmp_name'])){//检测上传方式是否为http postreturn $res = '上传方式错误:请使用http post 方式上传';}// $uploadPath = 'uploads/'; //存储文件目录if(!file_exists($uploadPath)){ //file_exists判断目录是否存在mkdir($uploadPath,0770,true); //mkdir创建目录,参数0770为权限chmod($uploadPath,0770); //为以防万一,再次修改权限为0770}// move_uploaded_file,copy 函数都可以移动文件// echo $prefix.time(); //调试用$des = $uploadPath.'/'.md5($prefix.time()).'.'.$ext; //将散列后的文件名,与后缀拼接。($prefix.time()拼接为原文件名+时间戳,md5 在将其散列形成独一无二的文件名,避免用户上传相同文件名的文件导致出现问题)// echo $des;//调试用$moveResult = move_uploaded_file($fileInfo['tmp_name'],$des);//参数:将$fileInfo['tmp_name']临时文件,复制到$des,if(!$moveResult){$res['error'] = '文件移动失败';}else{$res['info'] = $fileInfo['name'] . '上传成功';$res['fileRealPath'] = $des;}return $res;}else{switch($fileInfo['error']):case 1:echo '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值';break;case 2:echo '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值';break;case 3:echo '文件只有部分被上传';break;case 4:echo '没有文件被上传。 是指表单的file域没有内容,是空字符串';break;case 6:echo '找不到临时文件夹';break;default:echo '系统错误';endswitch;}}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号