很少人用那个函数,又要扩展模块,
检查文件的类型,用FILETYPE()就行了

解决方案 »

  1.   

    filetype函数并不能返回该文件的文件类型,$_FIlE全局变量中的"type"才是我想要的结果~~
    我也发现了这个函数估计很少的人用~~不然google上不会信息那么少~~
    还有就是这个问题很奇怪~~一条语句本身没有问题,但是放到include里面或者函数里面执行就有问题了~~难道是bug????
      

  2.   

    没遇到过这个warning
    在php.ini中加上:
    mime_magic.magicfile = "$PHP_INSTALL_DIR\magic.mime"
    不过如果不加上面应该是undefine function 错误
      

  3.   


    hucool(鱼淼):$file_tyep???不懂亚·~能不能说清楚点亚·~多谢~lawyu(雨淋漓) :这个我加了~~测试中的第一个测试是成功的~~证明这个函数可以正常工作。
                    但问题就是,TNND一旦讲这个函数放到被引用的页面或者函数里面,就不能正常执行了~说什么无效的模式,然后就是一串错误代码·~TYYD,也不给个说明~
    我看了看php手册~~好像要取得远程文件的文件类型只有用这函数~~郁闷亚~~~难道只能先把远程文件上传到本地的临时文件夹然后再判断~???
      

  4.   

    没见过,不过肯定是mime_content_type有问题,干吗不用$file_type,一样的结果啊
      

  5.   

    uuq(杜牧) :  
              对于图片文件来说,用getimagesize肯定是个好方法~然后可以用image_type_to_mime_type函数来返回类型。可惜我需要检查的文件不仅仅只包括图片文件…………xiaopar(心晴):
              你和hucool(鱼淼)说的一样,可是我不知道$file_type怎么用啊,是全局变量?没有啊~谢谢你说清楚一点亚~~~ 3Q该死的mime_content_type函数~~劝大家都不要用了~~呵呵
      

  6.   

    不就是检查上传文件的类型吗?你也知道“$_FIlE全局变量中的"type"才是我想要的结果”
    那么为何不用,反而要用mime_content_type呢?
      

  7.   


            我的本意是:如果用户想上传一个远程的文件,那么我希望能够在将这个文件copy到本地来之前就检查它的文件类型。比如虽然它的后缀名是.gif但实际上是个exe文件,那么就拒绝上传。        这样我才想到要用mime_content_type来检查远程文件的类型的,其实这个函数本身用起来没有任何问题~~奇怪就奇怪在不能include也不能放到函数里面执行~~        现在我暂时用的办法是不管是什么文件,先copy到本地的临时目录,然后再检查文件类型。但我总觉得这不是最好的办法~~~~~~
      

  8.   

    我的本意是:如果用户想上传一个远程的文件,那么我希望能够在将这个文件copy到本地来之前就检查它的文件类型。你用这个能实现这个么?如果达到你的要求,那么必须在表单提交前,也就只能用js了。
      

  9.   

    是呀“如果达到你的要求,那么必须在表单提交前,也就只能用js了”
    何况“远程文件”能被上传吗?mime_content_type需要设置php.ini,我不大愿意仅仅为了测试而做此工作
      

  10.   

    呵呵~~是不是大家对我所说的“远程文件上传”的意思有误会啊?
    我的意思是copy("http://community.csdn.net/images/CSDN_logo.GIF","./aaa.gif")这个应该叫“远程文件上传”吧。也就是把远程的一个文件上传到服务器上·~呵呵~这样清楚了吧?我是想做一个在线编辑器,里面要用到这个功能。希望能在执行copy语句以前检查一下准备上传的文件的类型~~而$_FILES只能检查用表单上传的文件的类型。
    还有就是mime_content_type可以检查远程文件的类型~~这个在我的第一个测试中是执行正常的。现在的问题是mime_content_type不能被include,也不能被放到函数里面去执行~~对这个我有些不了解~~
    另外,我一直最最崇拜的xuzuning(唠叨)老兄:
            要使用这个函数只需要在php.ini里面加上一句话
            mime_magic.magicfile = "$PHP_INSTALL_DIR\magic.mime"
            当然还需要加载
            extension=php_mime_magic.dll        不会太麻烦~
            如果你能够帮我测试一下就知道我说的是什么意思了~~呵呵~~~
      

  11.   

    mime_magic是个很不错的东西 我一直把它用在程序里
    你说的远程上传 我也有过实现 使用的方法也是先把文件复制过来再判断
    判断远程文件实际上都是这样
      

  12.   

    现在我也是这样做的~~先将远程文件copy到本地临时目录~然后再判断~~总觉得这样不是最好的方法~既然mime_content_type可以检查远程文件的类型干吗非要多此一举咧?再就是对mime_content_type这个函数不能include也不能放到function里面执行的这个问题感到不解~~我不认为是bug,但是,总有个说法吧~~
      

  13.   

    自己顶一下·希望有人能给解答~~最不济也要让大家以后别用mime_content_type这个函数~
      

  14.   

    加载了php_mime_magic,可是遗憾的很:mime_content_type函数的返回值太令人失望了,好多类型都不能识别嘛不过,并不会出现楼主所说的现象。无论是单独执行、放在嵌入文件里还是放在函数里都不会有什么问题
      

  15.   

    mime_content_type返回的类型和$_FILES的type属性差不多啊~~呵呵~令失望了么?非常感谢唠叨兄的测试~loveconan(放牛娃娃) 说得对,看来这个问题确实也是个“多此一举的问题”,不想理了~~呵呵
    结贴放分哦~~~~~~~~~~