2012-09-21 102 views
0
function uploadFile() { 
      global $attachments; 
      while(list($key,$value) = each($_FILES[images][name])) 
      { 
      if(!empty($value)) 
      { 
      $filename = $value; 
      //the Array will be used later to attach the files and then remove them from server ! array_push($attachments, $filename); 
      $dir = "/home/blah/Music/$filename"; 
      chmod("/home/blah/Music",0777); 
      $success = copy($_FILES[images][tmp_name][$key], $dir); 
      } 
      // 
      } 
      // 
      if ($success) { 
      echo " Files Uploaded Successfully<BR>"; 
    // 
    }else { 
    exit("Sorry the server was unable to upload the files..."); 
     } 
           // 
     } 

試圖上傳文件,然後使用PHP梅勒PHP文件上傳提交打開流

錯誤將其作爲沿着郵件附件:

Warning: copy(/home/blah/Music/Aerial_view_of_Yamuna_Expressway.jpeg): failed to open stream: Permission denied in /opt/lampp/htdocs/UI/user/joinmeeting.php on line 292 

更新時間:

[email protected]:~$ ls -la for /home/blah/Music 
ls: cannot access for: No such file or directory 
/home/blah/Music: 
total 8 
drwxr-xr-x 2 blah blah 4096 Jul 4 10:20 . 
drwxr-xr-x 67 blah blah 4096 Sep 21 10:18 .. 

爲什麼我的linux系統不允許複製文件?

+0

因爲您沒有權限。 –

回答

1

檢查目標文件夾的權限。
集777,然後再試一次

$ chmod 777 folder

因此,當我們看到現在你不設置寫入權限,以音樂文件夾。
從控制檯手動設置它,而不是從PHP腳本。

+0

我也試過777,但得到同樣的錯誤 – user1667633

+0

嘗試[move_uploaded_file](http://php.net/manual/en/function.move-uploaded-file.php) – MrSil

+0

你怎麼能建議某人chmod 777?這就像歡迎強盜進入你的家。 –

0

嘗試用move_uploaded_file(http://php.net/manual/en/function.move-uploaded-file.php),而不是副本:

move_uploaded_file($_FILES[images][tmp_name][$key], $dir); 
+0

move_uploaded_file():無法將'/ tmp/phpS9gEer'移動到'/ home/blah/Music/Aerial_view_of_Yamuna_Expressway。jpeg' – user1667633

+0

好,所以你應該檢查你在/ tmp /(如果不是)chmod它有足夠的權限,或者檢查/ home/blah/Music /真的存在(mkdir如果不存在),或者即使你有足夠的空間磁盤(清理它!)。 :) –

+0

@ user1667633這是完整的錯誤文本? – MrSil

0

好您的編輯是有點怪。

[email protected]:~$ ls -la for /home/blah/Music 
ls: cannot access for: No such file or directory 
/home/blah/Music: 
total 8 
drwxr-xr-x 2 blah blah 4096 Jul 4 10:20 . 
drwxr-xr-x 67 blah blah 4096 Sep 21 10:18 .. 

該命令是erroranous因爲它實際上是:

[email protected]:~$ ls -la /home/blah/Music 

您應該運行。

但確定我看到一個問題。表示整個文件夾的文件.沒有www-data權限。這意味着您的Linux發行版的默認Web用戶可能無法訪問這些文件。

由於PHP運行在WEBUSER www-data Linux將不是允許cpvigedit(或任何其他爲此事),它的東西,它不擁有。

你可以試試:

sudo chown /home/blah/Music www-data 

相反。這應該允許www-data來控制目錄中的文件。

當然這會產生更大的問題。理想情況下,由於安全需求,您會想要斷開實際Web服務器上的任何上傳目錄或任何內容。