PHP-成功上传后设置chmod?

时间:2013-04-23 19:18:56

标签: php permissions chmod

<?php

if (isset($_FILES['datei']))
{
move_uploaded_file($_FILES['datei']['tmp_name'], 'upload/'.$_FILES['datei']['name']);

echo "Filee successfully uploaded.";

chmod($_FILES["datei"]["name"], 777);

echo "<p> Chmod successfully set!<br>";
} 

?>

上传有效,但未设置chmod。任何人都可以帮忙并检查代码吗?

4 个答案:

答案 0 :(得分:4)

您需要拥有文件的绝对路径。 例如:

chmod("/var/www/files/uploads/" . $_FILES["datei"]["name"] . ".jpg", 0777)

确保文件位置确实存在。廉价而肮脏的方式:

if(!file_exists("/var/www/files/uploads/" . $_FILES["datei"]["name"] . ".jpg")) {
  die("File not found with path: /var/www/files/uploads/" . $_FILES["datei"]["name"] . ".jpg");
}
编辑:同样,在Aquillo的回答中,它应该是0777。

答案 1 :(得分:0)

您应该将chmod设置为

chmod($_FILES["datei"]["name"], 0777);

您可以详细了解here

答案 2 :(得分:0)

您将文件移至'upload/'.$_FILES['datei']['name']但chmod $_FILES['datei']['name']。请注意,你错过了'upload /'。将chmod更改为:

chmod('upload/'.$_FILES['datei']['name'], 0777);

答案 3 :(得分:0)

你需要在模式前加零(0),所以

mode should be 0777
chmod($_FILES["datei"]["name"], 0777); //correct way of mode