知识点:

大部分时候我们的代码总有各种各样的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();

?>

效果图:

转载于:https://www.cnblogs.com/chengzhongde/p/6919889.html

PHP异常处理类(文件上传提示)相关推荐

  1. Laravel 文件上传提示 “The file deos not exits ” ,但确实已经上传了文件

    Laravel 文件上传提示 "The file "" deos not exits " ,但确实已经上传了文件 首先使用代码抛出异常 if($file-> ...

  2. Spring Mvc 数据回显、异常处理、文件上传、json交互、ResTful、拦截器的使用(高级三)

    1,数据回显 SpringMvc包含三种数据回显机制 第一种:对于简单数据类型,如:Integer.String.Float等使用Model将传入的参数再放到request域实现显示. (回顾jsp四 ...

  3. springmvc高级(拦截器,全局异常处理,文件上传)

    SpringMVC 1.文件上传 文件上传: 指的就是将用户本地计算机中文件上传到服务器上的过程称之为文件上传 1).文件上传编程步骤 # 1.项目中引入相关依赖 <dependency> ...

  4. Springboot文件上传提示:failed to convert java.lang.String to org.springframework.util.unit.DataSize

    场景 SpringBoot中通过配置文件限制上传文件的大小时配置 #设置单个文件上传的文件大小 spring.servlet.multipart.max-file-size=10Mb #设置所有文件上 ...

  5. 【代码审计-2】PHP框架MVC类文件上传断点测试挖掘

    1.文件上传漏洞挖掘: (1)关键字搜索(函数.键字.全局变量等):比如$_FILES,move_uploades_file等 (2)应该功能抓包:寻找任何可能存在上传的应用功能点,比如前台会员中心, ...

  6. springboot文件上传提示临时文件夹不存在

    项目场景: 附件上传报错: java.io.IOException: The temporary upload location [C:\Users\Administrator\AppData\Loc ...

  7. layui文件上传 提示 请求上传接口出现异常

    后台返回json,有默认的接口字段.code:0 注:https://fly.layui.com/jie/16921/

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

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

  9. spring boot基础教程之文件上传下载

    一文件上传 文件上传主要分以下几个步骤: (1)新建maven java project: (2)在pom.xml加入相应依赖: (3)新建一个文件上传表单页面; (4)编写controller; ( ...

最新文章

  1. Go基础编程:延迟调用defer
  2. TrackID识别音乐的应用不能用了
  3. 网格中的BFS,逆向(POJ2049)
  4. c语言无效参数视为严重错误,C语言编译错误:错误:‘-’参数类型无效(有‘int’)...
  5. 阿里云Redis开发规范[转]
  6. redis storm mysql_flume+kafka+storm+redis/mysql启动命令记录
  7. Kubernetes基础:Pod的详细介绍
  8. 第四点没有重定义吧,第一个i的作用域就是那个循环,它出了这个域就被释放了。...
  9. 2021年中国一次性血压传感器市场趋势报告、技术动态创新及2027年市场预测
  10. openresty 搭建
  11. 语音识别技术_语音识别原理_语音识别技术原理_企业服务汇
  12. 垃圾回收算法_划重点 JVM G1 垃圾回收算法
  13. 阿里云宗志刚:云网一体,新一代洛神云网络平台
  14. android怎么执行命令,Android程序中执行adb命令
  15. 个人记录——洛谷试炼场,BOSS战!【新手村】
  16. oracle imp指定表空间导入,imp导入其它表空间数据库
  17. Android 呼吸灯流程分析(一)
  18. ArchLinux安装fcitx5-rime
  19. 基于mysql实现的网站_基于JavaScript和MySQL的文化平台网站的设计与实现
  20. 乐学python靠得住吗_乐学python答案

热门文章

  1. Debian 系统初体验
  2. 4412 GPIO读 和 ioremap控制GPIO寄存器
  3. C/C++变量在嵌套域内可见
  4. Flask web开发之路四
  5. 数组去重--这几种方法够不?
  6. java中需要用equals来判断两个字符串值是否相等
  7. 【poj3208-Apocalypse Someday】数位DP
  8. Win7 64 bit 激活工具
  9. hdu 2777(线段树)
  10. PostgreSQL的 initdb 源代码分析之九