Blogger Information
Blog 31
fans 1
comment 5
visits 29360
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
写一个自定义异常类来处理上传过程以及各种错误-2019-10-12作业
零度 的博客
Original
726 people have browsed it

百度了下多文件上传,并写了出来了

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了

原理如下图2.jpg1.jpg

文件长度超出会报错,课堂的源码也测试了也是一样 

睡觉先了 夜班 要睡好精神厂里赶货忙

Correction status:qualified

Teacher's comments:写得不错
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post