zoukankan      html  css  js  c++  java
  • PHP 获取上传文件的实际类型

    方案一:

    mime_content_type ( string $filename ) : string

    (PHP 4 >= 4.3.0, PHP 5, PHP 7)
    mime_content_type — 检测文件的 MIME 类型
     
    方案二:
    /**
         * 文件扩展名说明(部分)
         * 3780         pdf
         * 7173         gif
         * 255216       jpg
         * 13780        png
         * 6677         bmp
         * 8075         docx
         * 208207       doc
         */
        public function checkFileType($file = '', $ext = '')
        {//$file=$_FILE['file']['tmp_name'];
            $limitType = ['3780', '7173', '255216', '13780', '6677', '208207'];
            $fp = fopen($file, "rb");
            $bin = fread($fp, 2); //只读2字节
            fclose($fp);
            // unpack() 函数从二进制字符串对数据进行解包
            $str_info = @unpack("C2chars", $bin);
            //  intval() 函数用于获取变量的整数值
            $type_code = intval($str_info['chars1'] . $str_info['chars2']);
            if (!in_array($type_code, $limitType)) {
                Response::apiError('上传的文件类型不符合要求');
            }
            $file_type = '';
            switch ($type_code) {
                case 3780:
                    $file_type = 'pdf';
                    break;
                case 7173:
                    $file_type = 'gif';
                    break;
                case 255216:
                    $file_type = 'jpg';
                    break;
                case 13780:
                    $file_type = 'png';
                    break;
                case 6677:
                    $file_type = 'bmp';
                    break;
                case 8075:
                    $file_type = 'docx';
                    break;
                case 208207:
                    $file_type = 'doc';
                    break;
                default :
                    $file_type = 'unKnown';
            }
            if ($file_type != $ext) {
                Response::apiError('请不要试图修改上传文件后缀名,否则文件无法正常显示,源文件后缀应为:.' . $file_type);
            }
        }
    

      

     
     
     
     
  • 相关阅读:
    函数的返回值以及局部,全局变量
    函数的参数
    文件操作 函数
    数据类型一些基本操作方法
    设置精度的方法
    字符串和编码问题
    python中一些函数应用
    初步认识类
    P1613 跑路
    P2383 狗哥玩木棒
  • 原文地址:https://www.cnblogs.com/afeige/p/12023869.html
Copyright © 2011-2022 走看看