我对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,但代码会给出错误。
答案 0 :(得分:0)
许多可能性。您是否肯定正确收到文件上传?检查$_FILES['file']['error']。
上传的文件是否大于upload_max_filesize或post_max_size?
服务器是否使用open_basedir?如果是,您是否将文件写入已启用的目录?
它的价值 - 在包含目录上设置文件模式777是非常危险的。您正在为服务器上的所有用户启用写访问权限。您是否考虑过更严格的设置,也许是774?这将使Web组能够在目录中写入文件,但普通用户只能读取文件。
在您的示例代码中,您信任客户端上传的文件名。您是否考虑过安全隐患?