知识点:

大部分时候我们的代码总有各种各样的bug,新手程序员(比如我)最经常的工作就是不停的报错和echo变量,一个好的异常处理类可以帮我们更快+更容易理解报错代码的问题,同时,异常处理还可以避免一些因为程序错误而泄露网站重要信息内容的提示(比如文件报错,会弹出根目录),此外异常处理还可以协助项目上的正则验证,文件上传提示,访问权限控制等提高项目体验的功能。

代码:

<?php
header("Content-type: text/html; charset=utf-8");
/*
PHP异常处理常用函数:
1、getCode();得到传递给构造函数的错误代码
2、getFile();返回抛出异常的文件名
3、getLine();返回抛出异常的行号
4、getMessage();返回传递给构造函数的消息
5、getPrevious();返回前一个异常变量
6、getTrace();返回一个数组,包括错误的文件名、行号、函数名、函数参数。

*/

class exctest{

var $filename;//文件名
var $fileexten;//文件后缀

public function __construct($file){

$this->filename = $file;
$this->fileexten = pathinfo($file, PATHINFO_EXTENSION);

}
public function checkexist(){

try{
if(!file_exists($this->filename)){

throw new exception('文件不存在!');

}
}catch(exception $e){

echo $this->filename.$e->getMessage()."<br>";

}
}
public function checkexten(){

$extens = array('gif','jpg','png','xlxs','xls','doc');

try{
if(!in_array($this->fileexten,$extens)){

throw new exception('文件类型错误!请上传下列格式的文件:');

}
}catch(exception $e){

$extens = implode(",",$extens);
echo $this->filename.$e->getMessage().$extens;

}

}
public function checkall(){

$this->checkexist();
$this->checkexten();

}

}

$a = new exctest('test.rar');

$a->checkall();

?>

效果图:

PHP异常处理类(文件上传提示)的更多相关文章

  1. 自定义MVC框架之工具类-文件上传类

    截止目前已经改造了3个类: ubuntu:通过封装验证码类库一步步安装php的gd扩展 自定义MVC框架之工具类-分页类的封装 该文件上传类功能如下: 1,允许定制上传的文件类型,文件mime信息,文 ...

  2. SourceTree --转载 SourceTree大文件上传提示POST git-receive-pack (chunked)相关问题记录

    前两天,更新了百度地图的SDK,更新完了通过SourceTree上传到Github 结果提示 :POST git-receive-pack (chunked), 在网上查询之后了解到这个提示的原因是因 ...

  3. php文件上传提示错误:找不到临时文件夹

    "找不到临时文件夹",不可能啊,该项目的tmp目录已经创建好了呀. 感觉不对劲,运行自己写过的代码,发现也提示这个错误.确实不对劲,以前能上传成功的代码,现在却不能用了. 百度下, ...

  4. FastDFSClient工具类 文件上传下载

    package cn.itcast.fastdfs.cliennt; import org.csource.common.NameValuePair; import org.csource.fastd ...

  5. springboot2.0全局异常处理,文件上传过大会导致,方法被执行两次,并且连接被重置

    最后发现是内嵌tomcat也有文件大小限制,默认为2MB,我上传的是4MB,然后就炸了.在application.properties中添加server.tomcat.max-swallow-size ...

  6. HTML5文件上传器,纯脚本无插件的客户端文件上传器---Uploader 文件上传器类

    概述 客户端完全基于JavaScript的 浏览器文件上传器,不需要任何浏览器插件,但需要和jQuery框架协同工作,支持超大文件上传,其算法是将一个超大文件切片成N个数据块依次提交给服务 端处理,由 ...

  7. chunkupload 文件上传断点续传组件(java) - 正式发布

    chunkupload简介 chunkupload是一款基于java语言的断点续传组件,针对文件上传,非文件下载,集成方便,使用简单. chunkupload实现如下功能: ·  实现断点续传 ·  ...

  8. PHP文件上传和文件操作案例

    <?php /* *文件配置变量$dirname是目录名称 */ session_start(); $dirname = 'upload'; $fileClass = new fileClass ...

  9. iOS文件上传文件URL错误Invalid parameter not satisfying: fileURL'

    一:iOS文件上传提示URL错误 Invalid parameter not satisfying: fileURL' 二:解决方法: NSString *imagePath = [[NSBundle ...

随机推荐

  1. C#如何表格型数据导出到Excel?

    代码如下: int intDataCount = myData.Tables[0].Rows.Count; Microsoft.Office.Interop.Excel.Application app ...

  2. H5新增的Web Storage本地存储

    html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage. sessionStorage用于本地存储一个会话(session)中的数据,这些数据只 ...

  3. TLS握手协议

    SSL/TLS基础 SSL(Secure Sockets Layer 安全套接层),及其继任者-传输层安全(Transport Layer Security, TLS)是为网络通信提供安全及数据完整性 ...

  4. ssm整合-错误2

    1 警告: No mapping found for HTTP request with URI [/management] in DispatcherServlet with name 'dispa ...

  5. JQuery实现父级选择器(广告实现)

    效果图如下: HTML代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  6. FullCalendar日历插件(中文API)

    FullCalendar提供了丰富的属性设置和方法调用,开发者可以根据FullCalendar提供的API快速完成一个日历日程的开发,本文将FullCalendar的常用属性和方法.回调函数等整理成中 ...

  7. asp.net core-项目开发中问题汇总

    无法启动进程\Program File\dotnet\dotnet.exe.进程创建失败,出现错误:系统找不到指定的文件如下图: 解放方案:1.修改系统环境变量 2.重启电脑

  8. 【Python 2 到 3 系列】 关于除法的余数

    v2.2 以前,除("/")运算符的返回有两种可能情况,分别是整型和浮点型.操作数的不同,是影响计算结果数据类型的关键. 以 a / b 为例,a.b均为整型,则结果返回整型:a. ...

  9. Redis 持久化操作

    hash类型 类比:mysql数据库存储数据 持久化操作 以本身的数据以文件形式保存到硬盘中 手动快照持久化 i 备份机制(频率) vi redis.conf save 900 1  900s如果一个 ...

  10. zookeeper的搭建方法

    1.创建三台虚拟机分别在虚拟机上安装Ubuntu16.04Server版的系统. 2.首先选择配置好第一台虚拟机,使用命令vim /etc/hosts对该文件进行修改 3.将zookeeper-3.4 ...