PHP分析文件头信息判断上传文件的类型

PHP 投稿 9900 0 评论

PHP分析文件头信息判断上传文件的类型

这篇关于php上传文件 文件类型的文章,主要介绍PHP分析文件头信息判断上传文件的类型,觉得挺不错的,感兴趣的php开发者可以参考下,希望对大家在学习php的成长路上有所帮助!

在用PHP上传文件时一般限制可上传的文件类型的做法是通过文件的后缀进行判断,但这样的做法存在缺点,相信所有的phper们都是知道的,下面介绍一个可以从最根本上判断用户上传的文件类型的函数。

简要分析一下本函数通过文件头信息实现判断上传文件类型的过程思路,首先使用用fopen()函数打开上传的文件,然后通过fread()读取文件的前2个字节。得到的内容会是二进制的字符串,为了能在程序代码中做判断,这里使用的是unpack()函数把二进制数据转换成十进制数字的字符串(unpack()函数主要用于二进制操作,具体用法可参见php帮助文档,这里做解释!),然后进行判断即可。

下面直接把案例代码贴出来吧:


$filename='http://www.feishuai.vip/logo.gif';
$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:
		echo 'unknown';
	break;
}
echo '文件类型:'.$fileType.' 文件头信息:'.$typeCode;

参考文章:http://www.feishuai.vip/php-function/282.html

总结

以上就是关于php上传文件 文件类型全部内容,希望这篇PHP分析文件头信息判断上传文件的类型文章能够帮你解决如相关的PHP问题,更多请关注PHP栏目的其它相关文章!

编程笔记 » PHP分析文件头信息判断上传文件的类型

赞同 (49) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽