php判断文件真实后缀(防止修改后缀)

复制代码
<?php

// 判断文件真实类型
function get_file_type($fileName)
{
    $file = fopen($fileName, "rb");
    $bin = fread($file, 2); // 只读2字节
    fclose($file);
    $strInfo = @unpack("C2chars", $bin); // 将字节转换为字节二进制的数组
    $typeCode = (int)($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;
    }
    //Fix
    if ($strInfo['chars1'] == '-1' && $strInfo['chars2'] == '-40') return 'jpg';
    if ($strInfo['chars1'] == '-119' && $strInfo['chars2'] == '80') return 'png';
    return $fileType;
}
复制代码

 

posted @   MldyFre  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示