批改状态:合格
老师批语:
<?phpfunction uploadFile( $fileInfo, $uploadPath = './attachment', $flag = true, $allowExt = ['jpg', 'png', 'wbmp', 'gif', 'jpeg', 'bmp'], $maxSize = 2097152 ) {if ( $fileInfo['error'] == 0 ) {$arr = explode( '.', $fileInfo['name'] );//explode 分割字符串,以.点分割$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 = $uploadPath . '/' . date( 'Y' ) . '/' . date( 'm' ) ;if ( !file_exists( $uploadPath ) ) {//file_exists判断目录是否存在mkdir( $uploadPath, 0770, true );//mkdir创建目录,参数0770为权限chmod( $uploadPath, 0770 );//为以防万一,再次修改权限为0770}$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;}}
<!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><formaction="upload/uploads.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>

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号