登录  /  注册
博主信息
博文 30
粉丝 0
评论 0
访问量 19381
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
10月12日作业,自定义一个上传异常类
人生就像过山车的博客
原创
427人浏览过

老师好, 10月12日作业如下,自定义一个上传异常类,如果出现页面错误,不是因为远程服务器数据库里,没有相应的表引起的,而是因为数据库密码不同引起的。点击页面底部的php中文网图片可以返回我的博客页面,老师辛苦了,感恩感恩。 最近事很多,比较忙,而且由于纽约进入了冬令时,从而时差变为了13小时,以至于无法第一时间看直播了,但是还是会忙里偷闲看录播以及补写作业的,由于本次作业是图片上传,会对线上服务器造成压力,所以不再发布到线上服务器,全部采用代码和本地测试截图方式完成,多谢多谢,代码如下:

表单部分

<!DOCTYPE html><html lang="en">
<head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>Document</title></head>
<body>
    <form action="form.php" method="POST" enctype="multipart/form-data">
        <input type="file" name="file">
        <button>上传</button>
    </form>
</body>
</html>

PHP部分

<?php
    //use Exception;
    class FileException extends Exception{
          public function __construct($message = "",$code = 0)          {              parent::__construct($message,$code);          }
          public function errorInfo(){
            return <<<ERROR
            <h2>
                <strong>{$this->getCode()}:</strong>                <span style="color:red">{$this->getMessage()}</span>                        </h2>
            ERROR;          }    }
    try{
        $filetype = ['jpg','jpeg','gif','png'];
    $filesize = 4000000;
    $filepath = '/uploads/';
   if(isset($_FILES['file']['name'])){
       $filename = $_FILES['file']['name'];
       $tempname = $_FILES['file']['tmp_name'];   }else{
       $error = $_FILES['file']['error'];
       if($error > 0){
           switch($error){
               case 1:
               case 2: throw new FileException('文件超过3M',12);
               case 3: throw new FileException('上传文件不完整',3);
               case 4: throw new FileException('没有上传文件',4);
               default: throw new FileException('未知错误',5);           }       }   }
    $extension = explode('.',$filename);
   
    //echo $extension;
    if(!in_array($extension,$filetype)){

        throw new FileException('请上传图片文件',6);

    }else{
        echo '您上传的是 '.$extension.' 格式的图片。';    }
    $filename = date('YmdHis'.time()).md5(mt_rand(1,99)).'.'.$extension;
    //echo $filename;
        if(is_uploaded_file($tempname)){
            if(move_uploaded_file($tempname,__DIR__.$filepath.$filename)){
                echo '<strong style="color:lightgreen">图片上传成功!</strong>';            }else{
                echo '无法移动图片,请重试!';            }

        }else{
            echo '<strong style="color:red">上传错误</strong>';        }
    }catch(FileException $e){                echo $e->errorInfo();    }
    
?>

功能测试截图


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

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

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