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技术书籍推荐:
疯狂Android讲义(第3版)
疯狂Android讲义(第3版)
李刚 (作者)
移动互联网已经成为当今世界发展最快、市场潜力最大、前景最诱人的业务,而Android则是移动互联网上市场占有率最高的平台。 本书是《疯狂Android讲义》的第3版,本书基于最新的Android 5,并采用了Google推荐的IDE:Android Studio作为开发工具,书中每个案例、每个截图都全面升级到Android 5。本书全面介绍了Android应用开发的相关知识,全书内容覆盖了Android用户界面编程、Android四大组件、Android资源访问、图形/图像处理、事件处理机制、Android输入/输出处理、音频/视频多媒体应用开发、OpenGL与3D应用开发、网络通信编程、Android平台的Web Service、传感器应用开发、GPS应用开发、整合第三方Map服务等。
最新互联网资讯