现在我要写一个函数,就是处理上传的。要验证文件夹是否存在,是否是允许的类型。这个要怎么写?还有说个思路。不要使用类。就用函数。

解决方案 »

  1.   

    $_FILE数组中有你需要的值,取出来检查就可以了。
      

  2.   

    1.是否是允许的类型:使用$_FILES['name']['type']获取上文文件的类型进行判断
    2.验证文件夹是否存在使用:is_dir()
      

  3.   

    function check($dir,$file)
    {
    if(!is_dir($dir))
    {
    return false;
    }
    $ext_arr = array("jpg","gif");//允许的文件扩展名
    $extend = pathinfo($file); 
    $extend = strtolower($extend["extension"]); 
    if(!in_array($extend,$ext_arr))
    {
    return false;
    }
    return true;
    }
      

  4.   

    没有问题的吧,exe文件能用gif扩展名执行吗?
      

  5.   

    这个好像要检测MIME类型,否则你不允许文本执行,他把文本扩展名命名为.jpg,岂不是可以执行了?
    ps:linux下扩展名与是否可执行没有关系
      

  6.   

    liunx下上传的文件不可能有执行权限的吧
    至于windows下改了扩展名是不能执行的。
      

  7.   

    http://www.w3school.com.cn/php/php_file_upload.aspw3school上的例子
      

  8.   


    扩展名修改后,用$_FILES['name']['type']检测数出来的文件类型也随即发生了改变,所以判断类型和扩展名应该都是无所谓的。
      

  9.   

    我知道正常情况下判断文件类型是用type,我的问题是修改了扩展名后是否可执行
      

  10.   

    可以执行的吧,看看这个帖子
    http://topic.csdn.net/t/20060506/14/4732662.html
      

  11.   

    http://www.cnblogs.com/chengmo/archive/2010/10/17/1853710.html这个是检测文件头的,这个貌似比较安全,不过如果这样用户就没有办法自己设置上传文件的类型了。
      

  12.   


    这个我说过了,linux下上传文件是没有执行权限的,我的问题是在windows下是否修改扩展名仍旧后可执行
      

  13.   

    ASP网马改成jpg的文件之后上传
      

  14.   

    windows下我母鸡啊。。不要问我啊。。
    我说的是LZ问的问题是是否是允许的类型,所以你在Linux下检测的应该是文件的类型,而不是扩展名,不是上传的文件有没有执行权限的问题,而是LZ要不要给这个文件可执行权限的问题啊
      

  15.   


    去掉扩展名,按你的方式就无法知道文件类型了!
    mime类型依然可以知道!
      

  16.   

    array_pop(explode('.',$filename));//获取文件扩展名
    或 pathinfo()['extend'];