2009-11-05 96 views
0

我正在一個網站,其中用戶可以上傳圖像(使用PHP 4.3.11)。文件上傳沒有問題,因爲我可以在上傳目錄中看到它們,並且我沒有收到任何錯誤消息,但是當我嘗試通過ftp訪問上載的文件時,出現錯誤:沒有這樣的文件或目錄 。有時,我能夠訪問文件,有時我得到這個錯誤。這裏可能是什麼問題?通過php上傳的文件:沒有這樣的文件或目錄

[更新]
感謝您的幫助球員。我不熟悉ftp守護進程的東西。但我通過使用FireFTP通過ftp訪問我的文件。該文件在那裏,但試圖下載它們或更改文件屬性時,我得到了上述錯誤。我也嘗試通過ftp上傳文件夾中的文件,我可以下載它沒有問題。

這裏是我正在研究的一些代碼,它的一種迂迴,但我會看到如何改進它。

我的工作目錄是這樣www.domain.com/register/
和上傳目錄是在這裏www.domain.com/register/uploads/

用戶需要註冊並在註冊後在上傳目錄中爲他們創建一個文件夾。我無法找到一種方法來創建一個文件夾,而不必在上傳文件夾本身,所以我重定向到create-user-folder.php文件在上傳 dir。

文件只包含此代碼:

 
    $user_foldername = rawurldecode($_GET['name']); 
    mkdir($user_foldername); 
    header("Location: ../form.php");  // redirect back to the page 

我檢查和創建文件夾的權限設置爲775

,這裏是我在上傳使用的代碼(/註冊/功能的一部分/function.php):

 
    $path = "../uploads/$user_foldername/"; 
    for($j = 0; $j < $num_of_uploads; $j++){ 
     if(is_uploaded_file($_FILES[$file]['tmp_name'][$j])){ 
      $filename = $_FILES[$file]['name'][$j]; 
      copy($_FILES[$file]['tmp_name'][$j],$path.$filename); 
     } 
    } 

我檢查使用FireFTP的和文件在/uplo ads/user_foldername/目錄及其權限設置爲664.奇怪的是,當我嘗試下載文件時,有時根本沒有問題,但有時會出現錯誤。

[其他更新] 我的副本()函數後添加CHMOD(),

 
    $filename = $_FILES[$file]['name'][$j]; 
    copy($_FILES[$file]['tmp_name'][$j],$path.$filename); 
    chmod($path.$filename, 0755); 

,但我仍然得到錯誤。

另一件事是,當我訪問/通過URL註冊/上傳/ user_foldername/,我可以看到所有上傳的文件,並查看它們,但它是如何,我無法通過FTP訪問它們?

再次感謝!

+0

請提供操作系統,其中錯誤是可複製的。 – 2009-11-05 08:34:21

+0

某些代碼會很好,很難判斷它是一個許可問題還是一個基本路徑問題 – 2009-11-05 12:59:02

回答

0

這是一個權限問題或配置錯誤。這裏是你應該嘗試的東西:

上傳的文件的權限是什麼? FTP用戶是否可以訪問這些文件?您是否嘗試過以FTP守護程序將使用的用戶身份登錄,並查看您是否可以用這種方式讀取文件?

你真的看到了正確的目錄嗎?您是否已經通過將文件放入該目錄並進行下載來進行驗證?您是否使用過ftp命令ls來驗證文件夾/文件夾/文件的存在?

0

您可能需要chmod文件所在的文件夾,或者某些情況下文件本身。 嘗試chmod將它們設置爲775

您可以通過PHP自帶chmod文件和文件夾,使用chmod函數。或者,您可以使用FTP程序,例如filezilla

0

另外檢查以確保中間目錄也被許可爲755,因爲路徑中的所有目錄需要是可執行的以便遍歷。

+0

謝謝!我檢查了中間目錄,它們都被設置爲775,但我仍然無法通過ftp訪問這些文件。我必須錯過某些東西。 – kregg 2009-11-06 01:55:49

0

我剛纔發現了這個問題。這完全是因爲文件名中有重音字符,這就解釋了爲什麼我不總是收到錯誤信息:|

<嘆息>我應該已經看到了這較早,但無論如何,我希望這有助於萬一有人遇到同樣的問題。

再次感謝!我真的很感激它:)

+0

如果這確實是正確的答案,那麼您應該接受它。 – 2009-11-06 05:30:10

相關問題