php获取上传文件类型 获取文件后缀
本教程提供了三款获取上传文件与图片类型的方法,方法也是很简单的前二种,是先把类型定义好,再用in_array判断,最后一步是利用了fopen再读取前二个字节,判断.
代码如下:
<?php //获得图片的格式,包括jpg,png,gif function get_type($img_name) //获取图像文件类型 { if (preg_match("/.(jpg|jpeg|gif|png|bmp)$/i", $img_name, $matches)) { $type = strtolower($matches[1]); } else { $type = "string"; } return $type; } //判断上传文件类型 $allowedextensions = array("txt","csv","htm","html","xml", "css","doc","xls","rtf","ppt","pdf","swf","flv","avi", "wmv","mov","jpg","jpeg","gif","png"); foreach ($_files as $file) { if ($file['tmp_name'] > '') { if (!in_array(end(explode(".", strtolower($file['name']))) , $allowedextensions)) { die($file['name'] . ' is an invalid file type!<br/>' . '<a href="javascript:history.go(-1);">' . '<< go back</a>'); } } } //另类的读取文件与图片类型 function checktitle($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; } //fix if ($strinfo['chars1'] == '-1' && $strinfo['chars2'] == '-40') { return 'jpg'; } if ($strinfo['chars1'] == '-119' && $strinfo['chars2'] == '80') { return 'png'; } return $filetype; } ?>
教程网址:http://www.phprm.com/scxz/fs3196.html
欢迎收藏∩_∩但请保留本文链接。