php获取上传文件类型 获取文件后缀
本教程提供了三款获取上传文件与图片类型的方法,方法也是很简单的前二种,是先把类型定义好,再用in_array判断,最后一步是利用了fopen再读取前二个字节,判断.
代码如下:
//获得图片的格式,包括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="网页特效: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 ; } ?>查看更多关于php获取上传文件类型 获取文件后缀 - php上传下载的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did29381