百度了下多文件上传,并写了出来了
html代码
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>文件上传系统</title></head><body><form action="test.php" method="post" enctype="multipart/form-data"> <input type="file" name="my_file[]" id=""><input type="file" name="my_file[]" id=""><input type="file" name="my_file[]" id=""> <input type="hidden" name="MAX_FILE_SIZE" value="3145728"> <button>上传</button></form></body></html>
php代码
<?phpnamespace __1030;use Exception; //重写一个异常处理类,用来自定义异常输出样式class Excp extends Exception{ public function __construct($message = "", $code = 0) { parent::__construct($message, $code); } public function error(){ return '<p style="color:red;"><strong>'.$this->message.'错误代码:</strong>'.$this->code.'</p>'; }} $num =count($_FILES['my_file']['name']);try{for ($i=0;$i<$num;$i++){ // 1. 配置上传参数// 允许上传的文档类型$fileType = ['jpg', 'jpeg', 'png', 'gif']; // 文件最大长度$fileSize = 666666; // 上传到服务器上的指定的目录$filePath = '/uploads/';// 原始的文件名$fileName = $_FILES['my_file']['name'][$i]; // 临时文件名$tempFile = $_FILES['my_file']['tmp_name'][$i];// 2. 判断文件是否上传成功//$_FILES['my_file']['error'], 0: 表示成功,大于1出错$uploadError = $_FILES['my_file']['error'][$i];$a=$_FILES['my_file']['error'];if($uploadError>0){ switch ($uploadError){ case 1: throw new Excp('文件大小超出限制',103); break; case 2: throw new Excp('文件大小超出限制,只能上传200KB内的图片',102); break; case 3: throw new Excp('只有部分文件被上传',104); break; case 4: throw new Excp('没有文件被上传',105); break; case 6: throw new Excp('找不到临时文件夹',106); break; case 7: throw new Excp('文件写入失败',107); break; default: throw new Excp('未知错误',108); } } // 3. 判断文件扩展名 $extension = explode('.', $fileName);//print_r($extension); Array ( [0] => 4 [1] => jpg ) if (!in_array($extension[1], $fileType)) { throw new Excp('不允许上传' . $extension[1] . ' 文件类型',108);} // 4. 将上传的文件重命名: md5+时间戳$fileName = date('YmdHis',time()).md5(mt_rand(1,99)). '.' . $extension[1]; // 上传文件if (is_uploaded_file($tempFile)) { if (move_uploaded_file($tempFile, __DIR__. $filePath.$fileName)){ echo '<script>alert("上传成功");</script>'; } else { throw new Excp('文件无法移动到指定目录, 请检查目录权限',109); }} else { throw new Excp('非法操作',100);}}}catch (Excp $e){ echo $e->error();}
总结
乱码。。没时间解决了 要睡觉了 老师有空可以测试一下代码 我测试OK了
原理如下图
文件长度超出会报错,课堂的源码也测试了也是一样
睡觉先了 夜班 要睡好精神厂里赶货忙