php验证上传文件类型,php判断上传文件类型

php判断上传文件类型

2018-11-21

介绍一个判断上传文件类型的php代码,通过读取文件头信息的方式判断,有需要的朋友,可以参考下。在php判断上传文件类型的各种方法中,读文件头是最常见的方法,但是读文件头是不能真实判断文件类型的。判断文件类型,并不容易,本文为大家介绍一个php通过读文件头判断文件类型的代码,仅供参考。除了office文件之外,对于其它文件类型的判断还是很准的。代码如下:复制代码代码示例:<?php /*** 判断上传文件类型* Edit www.jbxue.com*/function file_type($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 8075:$fileType = "zip";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;}//Fixif ($strInfo["chars1"]=="-1" AND $strInfo["chars2"]=="-40" ) return "jpg";if ($strInfo["chars1"]=="-119" AND $strInfo["chars2"]=="80" ) return "png";return $fileType;}//调用echo file_type("start.php");   // 6063 or 6033?>不知道反过来定义 6063或者6033 就是指php的话 是不是不够严谨啊。上面的代码,对于构造假的图片的文件类型判断,不是很好使。此时可以考虑使用getimagesize来判断,参考代码如下:复制代码代码示例:<?php /*** getimagesize判断文件类型* Edit www.jbxue.com*/if(in_array($attach["ext"], array("jpg", "jpeg", "gif", "png", "swf", "bmp")) && function_exists("getimagesize") && !@getimagesize($target)){unlink($target);upload_error("post_attachment_ext_notallowed", $attacharray);}?>

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。

http://www.pinlue.com/style/images/nopic.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值