欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php 上传文件 判断 文件类型解决思路

程序员文章站 2022-06-17 14:17:58
...
php 上传文件 判断 文件类型
我 现在 想 上传 一个 csv 文件,
在 php 里 怎么 判断 这个 文件 类型 是 csv 的呢?

注:
除了 判断 扩展名 之外,还有 什么 判段 的 方法??

------解决方案--------------------
$_FILES["file"]["type"]
------解决方案--------------------
探讨

$_FILES["file"]["type"]

------解决方案--------------------
学习了!!!!!!!!!!!!!!!
------解决方案--------------------
楼主非要把简单的事情复杂化。那也没办法!
------解决方案--------------------
网上流传的一个不错的方法
PHP code
function ftype($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';
    }
    return $fileType;
}

------解决方案--------------------
我认为8楼得方法已经尽最大程度判定了,按照楼主的意思就是上传的文件如何判定其内容是不是csv格式的(不相信扩展名),那就只能获取文件里面内容,并根据里面内容的形式判定是不是csv文件,但是这种办法是要在后台实现的,也就是说此时文件已经上传了,上传了再判定就没有什么用了。所以,个人认为,不上传,还要判断内容形式,没什么好的解决办法。
------解决方案--------------------
探讨

我的 意思是 csv 不是 用 , 这个 隔开的 文件 吗

aa,bb,cc,dd
ee,ff,gg,hh

类似 这样的 文件
按 8楼 的 说法 这个 文件 的 typeCode=131112
可是

aa,"b
b",cc,dd
ee,ff,gg,hh

这个 样子 也 是正确 的 csv 格式 类型 但是 这个 文件 的 typeCode=105105
……
php 上传文件 判断 文件类型解决思路

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频