博客列表 >1写一个自定义异常类来处理上传过程以及各种错误2.写一个与指定数据表绑定的类, 实现基本的模型功能 补1012作业

1写一个自定义异常类来处理上传过程以及各种错误2.写一个与指定数据表绑定的类, 实现基本的模型功能 补1012作业

月迎下弦的博客
月迎下弦的博客原创
2019年10月23日 16:07:32773浏览

1010.jpg

实例

<?php 
namespace _1022;
//Exception 类是可以进行扩展的
//Exception 中只有__construct()和__toString()允许扩展,其它都是最终方法final,不允许扩展
//下面我们来创建一个自己的异常类,专用于处理算数运算中可能出现的错误
//基本要求是:错误代码加粗,提示文本描红,并要求换行显示
//处理运行中的错误
// 异常进行错误的统一处理
// 异常类是php中专用于错误 信息的统一处理

use Exception;
//将系统的异常类进行扩展,自定义
class Customize extends Exception
{
    public function __construct($message = ""/**错误信息*/, $code = 0/**代码*/  )
    {
        parent::__construct($message,$code);
    }   
      
    public function errorInfo()
    {
         // heredoc:用来输出大段的html代码或字符,并且中间允许有变量且会解析
        return <<< "ERROE"
        <h2>
        <img src="uploads/caveat.jpg" alt="" width="1.2%">
        <span style="color:red;"><strong>{$this->getCode()}: </strong></span>
        <span style="color:red;">{$this->getMessage()}</span>
        <img src="uploads/error.png" alt="" width="1.2%" >
        </h2>
        ERROE;
    }
}
try {
    //设置允许上传文件的类型
    $fileType = ['jpg','JPG','jpeg','png','gif'];

//设置允许上传文件的最大长度
$fileSize = 3145728;

//上传到服务器上的制定的目录
$filePath = '/uploads/';

//原始的文件名
$fileName = $_FILES['my_file']['name'];

//上传到服务器上的临时文件名
$tempFile = $_FILES['my_file']['tmp_name'];

// 2.判断文件是否上传成功?
// $_FILES['my_file']['error'],0:表示成功,大于1出错
$uploadError = $_FILES['my_file']['error'];
if ($uploadError > 0) {
    switch ($uploadError) {
        case 1:
        case 2:throw new Customize('上传文档不允许超过5MB', 1001);
        case 3:throw new Customize('上传文件不完整',1002);
        case 4:throw new Customize('没有文件被上传',1003);
        default:throw new Customize('未知错误',1004);

    }
}
//3. 判断文件是否上传正确?
$extension = explode/**将文件切割成两部分*/('.', $fileName)[1];
if (!in_array($extension/**扩展名*/, $fileType/**数组*/)) {
    throw new Customize('不允许上传'.$extension.'文件类型',1005);
}

//4.为了防止同名覆盖,将上传的文件重命名:md5+时间戳
$fileName = date('YmdHis',time()).md5(mt_rand(1,99)).'.'.$extension;

//5.上传文件
if (is_uploaded_file($tempFile)) {
    if (move_uploaded_file($tempFile,__DIR__. $filePath.$fileName)) {
        echo '<script>
            alert("上传成功");location.href = document.referrer;//返回并刷新
            </script>';
    } else {
        throw new Customize('文件无法移动到制定目录,请检查目录权限',1006);
    }
} else {
    throw new Customize('非法操作',1007);
}
exit(); 
} catch (Customize $th) {
    echo $th->errorInfo();
    echo '<br>';
}

运行实例 »

点击 "运行实例" 按钮查看在线实例


2.写一个与指定数据表绑定的类, 实现基本的模型功能,例如查询, 新增, 更新,删除等操作

查询

指定数据表绑定的类_01.jpg

增加和修改不会写




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