摘要:<?php /** * Created by PhpStorm. * Date: 2019/4/5 * Time: 15:31 */ /** * 单文件上传 * @param $fileInfo &
<?php /** * Created by PhpStorm. * Date: 2019/4/5 * Time: 15:31 */ /** * 单文件上传 * @param $fileInfo // 上传文件信息 * @param string $upPath // 目标目录 * @param array $upExt // 上传文件类型 * @param int $maxSize // 上传最大限制 * @return string 提示信息 */ function upload_file($fileInfo,$upPath='./upload',$upExt = ['jpg','pan','jpeg','txt','xls'],$maxSize = 1000000) { // 判断文件错误类型是否为0 if($fileInfo['error'] === 0) { // 获取文件后缀 $ext = strtolower(pathinfo($fileInfo['name'], PATHINFO_EXTENSION)); if (!in_array($ext, $upExt)) { return '非法文件类型'; } // 判断文件是否超出了限制 if ($fileInfo['size'] > $maxSize) { return '上传文件超出了限制'; } // 判断文件是否被上传 if (!is_uploaded_file($fileInfo['tmp_name'])) { return '非法上传操作'; } // 判断上传到的目录是否存在 if (!is_dir($upPath)) { mkdir($upPath, 0777, true); } // 生成唯一文件名 $uniName = substr(md5(uniqid(microtime(true), true)), 5, 10); $destName = $upPath . '/' . $uniName . '.' . $ext; if (!move_uploaded_file($fileInfo['tmp_name'], $destName)) { return '文件上传失败'; } return '文件上传成功'; } else { switch($fileInfo['error']) { case 1: $res = '文件上传超过了php.ini中upload_max_size的限制'; break; case 2: $res = '上传文件超过了HTML中设置的MAX_FILE_XIZE限制值'; break; case 3: $res = '文件只有部分被上传'; break; case 4: $res = '文件没有被上传'; break; case 6: $res = '找不到临时文件夹'; break; case 7: $res = '文件上传失败'; break; } return $res; } } /** * @param $fileName 需要下载的文件 */ function down_file($fileName) { // 告诉浏览器下载文件的大小 header('Accept-Length:'.filesize($fileName)); // 告诉浏览器已附件的形式输出,并返回文件名称 header('Content-Disposition:attachment;filename='.basename($fileName)); // 文件输出 readfile($fileName); } ?>
批改老师:西门大官人批改时间:2019-04-08 09:55:15
老师总结:文件上传的时候有个缺陷,switch中少了default,可能会引发未定义$res的错误