使用PHP,CHMOD 777无法move_uploaded_file

时间:2014-06-30 16:08:35

标签: php file upload chmod

我对PHP的move_uploaded_file有一点问题。 PHP文件和目录的CHMOD是777。 代码如下:

$allowedExts = array("gif", "jpeg", "jpg", "png");
$target_path = "upl/" . $_FILES['uploadedfile']['name']; 
if(in_array(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION), $allowedExts) && $_FILES['file']['size'] <= 10485760){
    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
        echo "Skopiuj to i wklej do wpisu:<br>";
        echo "<input type='text' value='[img]http://***********/upl/" . $_FILES['file']['name'] . "[/img]'>";
    }else{
        echo "There was an error uploading the file, please try again!";
    }
}

尽管有chmod,但代码会给出错误。

1 个答案:

答案 0 :(得分:0)

许多可能性。您是否肯定正确收到文件上传?检查$_FILES['file']['error']

上传的文件是否大于upload_max_filesizepost_max_size

服务器是否使用open_basedir?如果是,您是否将文件写入已启用的目录?

它的价值 - 在包含目录上设置文件模式777是非常危险的。您正在为服务器上的所有用户启用写访问权限。您是否考虑过更严格的设置,也许是774?这将使Web组能够在目录中写入文件,但普通用户只能读取文件。

在您的示例代码中,您信任客户端上传的文件名。您是否考虑过安全隐患?