博客列表 >写一个自定义异常类来处理上传过程以及各种错误-2019-10-12作业

写一个自定义异常类来处理上传过程以及各种错误-2019-10-12作业

零度 的博客
零度 的博客原创
2019年10月30日 11:43:56725浏览

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

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

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

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

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议