PHP异常处理类(文件上传提示)
知识点:
大部分时候我们的代码总有各种各样的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异常处理类(文件上传提示)的更多相关文章
- 自定义MVC框架之工具类-文件上传类
		
截止目前已经改造了3个类: ubuntu:通过封装验证码类库一步步安装php的gd扩展 自定义MVC框架之工具类-分页类的封装 该文件上传类功能如下: 1,允许定制上传的文件类型,文件mime信息,文 ...
 - SourceTree --转载 SourceTree大文件上传提示POST git-receive-pack (chunked)相关问题记录
		
前两天,更新了百度地图的SDK,更新完了通过SourceTree上传到Github 结果提示 :POST git-receive-pack (chunked), 在网上查询之后了解到这个提示的原因是因 ...
 - php文件上传提示错误:找不到临时文件夹
		
"找不到临时文件夹",不可能啊,该项目的tmp目录已经创建好了呀. 感觉不对劲,运行自己写过的代码,发现也提示这个错误.确实不对劲,以前能上传成功的代码,现在却不能用了. 百度下, ...
 - FastDFSClient工具类 文件上传下载
		
package cn.itcast.fastdfs.cliennt; import org.csource.common.NameValuePair; import org.csource.fastd ...
 - springboot2.0全局异常处理,文件上传过大会导致,方法被执行两次,并且连接被重置
		
最后发现是内嵌tomcat也有文件大小限制,默认为2MB,我上传的是4MB,然后就炸了.在application.properties中添加server.tomcat.max-swallow-size ...
 - HTML5文件上传器,纯脚本无插件的客户端文件上传器---Uploader 文件上传器类
		
概述 客户端完全基于JavaScript的 浏览器文件上传器,不需要任何浏览器插件,但需要和jQuery框架协同工作,支持超大文件上传,其算法是将一个超大文件切片成N个数据块依次提交给服务 端处理,由 ...
 - chunkupload 文件上传断点续传组件(java) - 正式发布
		
chunkupload简介 chunkupload是一款基于java语言的断点续传组件,针对文件上传,非文件下载,集成方便,使用简单. chunkupload实现如下功能: · 实现断点续传 · ...
 - PHP文件上传和文件操作案例
		
<?php /* *文件配置变量$dirname是目录名称 */ session_start(); $dirname = 'upload'; $fileClass = new fileClass ...
 - iOS文件上传文件URL错误Invalid parameter not satisfying: fileURL'
		
一:iOS文件上传提示URL错误 Invalid parameter not satisfying: fileURL' 二:解决方法: NSString *imagePath = [[NSBundle ...
 
随机推荐
- 【Java】异常 —— throw, throws, try catch 相关内容
			
嗯……面试考到了这个,又是一个如无意外 那么接下来就总结吧 一.什么是异常 程序运行过程中发生的异常事件. RuntimeException通常是因为编程员因为疏忽没有检查而引起的错误. 二.Exce ...
 - base64位 解码图片
			
jar包是commons-codec.jar. pnuts //base64解码成图片 function gldBase64ToImage(imgStr,imgFilePath) { // 对字节数组 ...
 - 洛谷题解:P1209 【[USACO1.3]修理牛棚 Barn Repair】
			
原题传送门:https://www.luogu.org/problemnew/show/P1209 首先,这是一道贪心题. 我们先来分析它的贪心策略. 例如,样例: 4 50 18 3 4 6 ...
 - BZOJ1562: [NOI2009]变换序列(二分图 匈牙利)
			
Description Input Output Sample Input 5 1 1 2 2 1 Sample Output 1 2 4 0 3 HINT 30%的数据中N≤50:60%的数据中N≤ ...
 - glibc2.12升级至2.15
			
1.操作系统版本 [root@localhost ~]# cat /etc/redhat-release #CentOS release 6.9 (Final) 2.当前glibc版本 [root@l ...
 - python__系统 : 进程
			
在类unix操作系统下,可以用 os.fork() 创建一个新的进程,windows系统不可以: import os ret = os.fork() print('ret=%d' % ret) : p ...
 - PyCharm 的安装与入门操作
			
PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提示.自动完成.单元测试.版本控制. ...
 - 重头开始学Qt——day1
			
以前学过Qt,但只是为了学分,现在重学. 1. 认识Qt应用程序框架 直接新建一个项目后,自动生成了一下文件,下面一个个理解. (1)main.cpp main.cpp中特别的是QApplicatio ...
 - 2016 ACM-ICPC Asia China-Final D 二分
			
题意:一共有N个冰淇淋球,做一个冰淇淋需要K个球,并且由于稳定性,这K个球还必须满足上下相邻的下面比上面大至少两倍.先给出N个球的质量,问最多能做出多少个冰淇淋? 思路:二分答案并对其检验. 检验标准 ...
 - Android Html处理器通用类 HtmlUtil
			
1.整体分析 1.1.首先看一下源代码,可以直接Copy. public class HtmlUtil { /** * 获取 html 中的纯文本 */ public static String Ht ...