$type=$_FILES['userfile']['type'];
echo $type;
无论我给的是什么文件都输出image/gif
给txt文件也是这个。给jpg文件也是这个
这是什么原因呢?
其实我想实现如果上传的文件是jgp,gif,png这3种格式的话,我就直接在页面上显示
$yy=$uploaddir.basename($_FILES['userfile']['name']);
$type=$_FILES['userfile']['type'];
if(($type='image/gif')||($type='image/jpeg')||($type='image/png')){
               touch($yy);
             }

求搭救。

解决方案 »

  1.   

    貌似用MIME判断文件类型不太保险,还是通过文件扩展名来判断类型吧,比如截取$_FILES['userfile']['name']值的后4位进行判断。
      

  2.   

    $type=$_FILES['userfile']['type'];这种能够获取文件类型?
    用filetype($youname[$i])判断一下吧 
    gif,bmp指的是文件格式,简而言之就是用什么程序打开它,这个是根据它的扩展名而定 
    的,应用程序只是根据扩展名来判断是否自己能打开的格式,比方说你吧you.txt改名 
    为you.exe,双击它照样可以作为exe运行(当然运行不正常) 
    如果你是想获得文件格式,那么应该用判断扩展名的办法,先用strrchr取最后一个 ". " 
    然后取 ". "后的字符串     这样ok??
      

  3.   

    看下这个
    php获取文件后缀名的集中方法
      

  4.   

    已经解决代码没有什么太大问题。如果是正式做网站用这个函数是病态。
    主要错在touch在这个地方
    我直接用echo “<img src=$yy>”.解决了。。
    烦。