PHP判断上传文件类型最安全,最真实的解决办法

栏目: 编程语言 发布于: 2014-04-28 14:08:14

php通过判断上传文件的头字符来判断文件的类型,这可以称得上是最安全,最真实确定上传文件类型的方法了,具体实现方法:

/**
* 读取文件前几个字节 判断文件类型
* @return string
*/
function checkFileType($filename){
	$file=fopen($filename,'rb');
	$bin=fread($file,2); //只读2字节
	fclose($file);
	$strInfo =@unpack("c2chars",$bin);
	$typeCode=intval($strInfo['chars1'].$strInfo['chars2']);
	$fileType='';
	switch($typeCode){
		case 7790:
			$fileType='exe';
		break;
		case 7784:
			$fileType='midi';
		break;
		case 8297:
			$fileType='rar';
		break;
		case 255216:
			$fileType='jpg';
		break;
		case 7173:
			$fileType='gif';
		break;
		case 6677:
			$fileType='bmp';
		break;
		case 13780:
			$fileType='png';
		break;
		default:
			$fileType='unknown'.$typeCode;
		break;
	}
	//Fix
	if($strInfo['chars1']=='-1' && $strInfo['chars2']=='-40'){
		return 'jpg';
	}
	if($strInfo['chars1']=='-119' && $strInfo['chars2']=='80'){
		return 'png';
	}
	return $fileType;
}
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。
转载请注明:文章转载自 [http://www.php230.com]
本文标题:PHP判断上传文件类型最安全,最真实的解决办法
IT技术书籍推荐:
细说PHP(第2版)
细说PHP(第2版)
高洛峰 (作者)
《细说PHP(第2版)》内容简介:PHP是开发Web应用系统最理想的工具,易于使用、功能强大、成本低廉、高安全性、开发速度快且执行灵活。全书以实用为目标设计,包含PHP开发最主流的各项技术,对每一个知识点都进行了深入详细的讲解,并附有大量的实例代码,图文并茂。系统地介绍了PHP的相关技术及其在实际Web开发中的应用。 《细说PHP(第2版)》共六个部分,分为30个章节,每一章都是PHP独立知识点的总结。内容涵盖了动态网站开发的前台技术(HTML+CSS)、PHP编程语言的语法、PHP的常用功能模块和实用技巧、MySQL数据库的设计与应用、PHP 面向对象的程序设计思想、数据库抽象层PDO、Smarty模板技术、Web开发的设计模式、自定义框架BroPHP、Web项目开发整个流程等目前PHP开发中最主流的技术。每一章中都有大量的实用示例,以及详尽的注释,加速读者的理解和学习,也为每章的技术点设置了大量的自测试题。最后以一个比较完整的、采用面向对象思想,以及通过MVC模式设计,并结合Smarty模板,基于BroPHP框架的CMS系统为案例,详细介绍了Web系统开发从设计到部署的各个细节,便于更好地进行开发实践。
最新互联网资讯