首页 > php上传下载 > php获取上传文件类型 获取文件后缀

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);">' . '&lt;&lt 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

欢迎收藏∩_∩但请保留本文链接。

标签:类型 文件 后缀

相关文章

发表留言