2013-08-01 57 views
0

所以我得到了這個代碼,它假設從遠程主機上的/ upload /文件夾中獲取所有內容並將其複製到文件所在的位置。代碼如下所示:通過ftp的PHP同步給出錯誤

<?php 
$ftp_server = "server"; 
$conn_id = ftp_connect ($ftp_server) 
    or die("Couldn't connect to $ftp_server"); 

$login_result = ftp_login($conn_id, "user", "password"); 
if ((!$conn_id) || (!$login_result)) 
    die("FTP Connection Failed"); 

ftp_sync ("/update/"); 

ftp_close($conn_id); 

function ftp_sync ($dir) { 

    global $conn_id; 

    if ($dir != ".") { 
     if (ftp_chdir($conn_id, $dir) == false) { 
      echo ("Change Dir Failed: $dir<BR>\r\n"); 
      return; 
     } 
     if (!(is_dir($dir))) 
      mkdir($dir); 
     chdir ($dir); 
    } 

    $contents = ftp_nlist($conn_id, "."); 
    foreach ($contents as $file) { 

     if ($file == '.' || $file == '..') 
      continue; 

     if (@ftp_chdir($conn_id, $file)) { 
      ftp_chdir ($conn_id, ".."); 
      ftp_sync ($file); 
     } 
     else 
      ftp_get($conn_id, $file, $file, FTP_BINARY); 
    } 

    ftp_chdir ($conn_id, ".."); 
    chdir (".."); 

} 
?> 

當我在一個空文件夾中運行它,它做什麼它猜想。但是,如果我在包含來自/ update /的文件的文件夾中運行它,它會給我兩個錯誤。這些錯誤下面列出

Warning: mkdir() [function.mkdir]: Permission denied in /home/limited/public_html/download.php on line 25 

Warning: chdir() [function.chdir]: No such file or directory (errno 2) in /home/limited/public_html/download.php on line 26 

它的假設只是覆蓋用新的文件,而不是拋出錯誤。

謝謝

回答

0

無論是腳本(實際運行腳本的用戶)沒有權限服務器的文件夾,你要複製的文件,並創建新的文件夾中創建新的文件夾被限制來自您的用戶。

與具有較高權限的用戶嘗試或者您希望將文件同步到

+0

添加寫權限的文件夾好,我跑這個劇本來自「url.com/download.php」任何人,嘗試過那裏。所以如果我想這樣運行,我必須用擁有權限的用戶登錄到網站本身。 :○ –