0

我们有一个免费的分类部分,用户可以在其中上传图片,如果在其中上传 php 文件,如何限制用户显示错误

我们尝试设置一个如果 $StrFiles 等于 text/php,它不会执行并且仍然上传一个 php 文件。如何阻止它。请建议

        $FILE_PATH="uploads/classifieds/ads";
        $StrFiles="";
        $StrFiles2="";

        if((file_exists($_FILES['pic']['tmp_name']))){
            if($_FILES['pic']['name']!="")
                {
                $dt = time()."s";
                if(!JFile::upload($_FILES['pic']['tmp_name'],$FILE_PATH.JFile::makeSafe($dt."_".$_FILES['pic']['name']))){
                        return JError::raiseWarning( 500, "Unable To upload File".$_FILES['pic']['name']);
                    }else{
                        $StrFiles=JFile::makeSafe($dt."_".$_FILES['pic']['name']);
                    }
                }
        }
        if((file_exists($_FILES['pic2']['tmp_name']))){
            if($_FILES['pic2']['name']!=""){
                $dt = time()."s";
                if(!JFile::upload($_FILES['pic2']['tmp_name'],$FILE_PATH.JFile::makeSafe($dt."_".$_FILES['pic2']['name']))){
                        return JError::raiseWarning( 500, "Unable To upload File".$_FILES['pic2']['name']);
                    }else{
                        $StrFiles2=JFile::makeSafe($dt."_".$_FILES['pic2']['name']);
                    }
                }
        }

           if ($StrFiles =="text/php")
             {
            echo "No PHP files<br>";
             $ok=0;
              } 

            if ($StrFiles2 =="text/php")
              {
            echo "No PHP files<br>";
            $ok=0;
              }              


    if($StrFiles){
        $pic= $StrFiles;
    }
    if($StrFiles2){
        $pic2= $StrFiles2;
    }
4

1 回答 1

0

由于您使用的是 Joomla,您可以定义所有允许的图像扩展名的列表,然后用于JFile::getExt($filename)检查扩展名是否属于允许的扩展名。

例如

$allowed = array('jpg', 'png');
if(in_array(JFile::getExt($filename), $allowed) {
}
于 2013-02-17T13:25:20.900 回答