判断用户上传的是否为图片,最简单的方法是后缀名。但是这样判断的话,***还是可以把运行文件上传进去。所以不能仅仅判断后缀名,我们要读取图片的2个字节,判断一下是不是图片。这个函数是我朋友共享的,我现在共享给大家。有什么漏洞希望大家提出来,共同商讨!谢谢
- //判断上传的是不是图片
- public function pic ($fileName){
- $file = fopen($fileName, "rb");
- $bin = fread($file, 3); //只读2字节
- fclose($file);
- $strInfo = @unpack("C2chars", $bin);
- $typeCode = intval($strInfo['chars1'].$strInfo['chars2']);
- $fileType = '';
- if($typeCode == 255216 /*jpg*/ || $typeCode == 7173 /*gif*/ || $typeCode == 13780 /*png*/) {
- return $typeCode;
- }else{
- // echo '"仅允许上传jpg/jpeg/gif/png格式的图片!';
- return false;
- }
- }
转载于:https://blog.51cto.com/jsny821/835975