2011-12-12 122 views
0

我一直被困在兩個問題上,我認爲它們是相關的。首先是我試圖上傳一個文件(並且我打算在完成這個工作後重新命名)。第二是我試圖記錄某些事件。未能打開流和權限被拒絕錯誤

代碼的第一個問題是:

move_uploaded_file($_FILES['logo']['tmp_name'], 
basename($_FILES['logo']['name'])); 

我得到的錯誤是:

Warning: move_uploaded_file(224537_10150405406507786_833667785_10758194_3953892_n.jpg): 
failed to open stream: Permission denied in /var/www/html/MVP/test/uploadFile.php 
on line 3 Warning: move_uploaded_file(): Unable to move '/tmp/phpuDHoo6' 
to '224537_10150405406507786_833667785_10758194_3953892_n.jpg' 
in /var/www/html/MVP/test/uploadFile.php on line 3 

第二個代碼的第二個問題是這樣的:

function logToFile($msg){ 
    $logfile=dirname(__FILE__)."/../../shared/log/logCleanups.log"; 
    $fd = fopen($logfile, "a+"); 
    fwrite($fd, date("Y-m-d H:i:s",time("now")).$msg."/n"); 
    fclose($fd); 
} 

我得到的錯誤是:

Warning: fopen(/var/www/html/MVP/administrative/controllers/../../shared/log/logCleanups.log): 
failed to open stream: No such file or directory 
in /var/www/html/MVP/administrative/controllers/cleanupAds.php 
on line 10 
Warning: fclose() expects parameter 1 to be resource, boolean given 
in /var/www/html/MVP/administrative/controllers/cleanupAds.php on line 12 

哦。而且,我已經做了chmod 777的事情。似乎我找到的每個答案都是這樣。

回答

0

第一個錯誤信息是簡單地說明您的PHP運行的標識沒有權限將文件寫入您嘗試寫入的目錄。嘗試更改您的目錄權限或PHP正在執行的身份。

您的文章中的第二個錯誤是兩個單獨的錯誤(#2和#3)。第二種狀態表示您要打開的文件不存在。第三個因爲第二個錯誤而發生。

要解決這些問題,請仔細查看目錄和文件結構,並確保您使用的文件路徑是有效且可訪問的。

+0

謝謝!錯誤#2和#3似乎不再是一個問題。不幸的是,我似乎無法控制錯誤1。我現在有更多重要的事情需要擔心,所以我現在就把它放在後面 –

0

在第一個錯誤,它說Permission denied。這對我來說很清楚。您無權在該目錄中移動文件。您必須更改權限。

關於第二個錯誤,您似乎正在使用相對路徑。從我可以告訴,這是行不通的。嘗試使用完整路徑而不是/../../。這可能會解決您的fclose()錯誤。

1

對於第一個問題:您沒有權限將文件寫入當前目錄。 有兩種方法可以解決這個問題, a)通過更改目標權限來寫入文件。 b)通過更改文件目標路徑本身,其中您擁有複製/上載文件的寫權限。

而對於第二個問題:給定的路徑可能是錯誤的。

使用絕對路徑(完整路徑而不是../../)並檢查日誌文件的文件權限。

相關問題