博主信息
博文 32
粉丝 1
评论 5
访问量 36157
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
写一个自定义异常类来处理上传过程以及各种错误-2019-10-12作业
零度 的博客
原创
854人浏览过

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

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举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学