2015-08-15 48 views
1

我目前正在做一個腳本,將備份我在我的服務器上,但有一個主要問題的文件。大約30分鐘前,我能夠使用相同的腳本進行連接,列出我的文件並下載它們。但現在當我嘗試連接,它連接,就是這樣,我不能ftp_nlist的文件,因爲當我這樣做,它只是返回bool(false)。我讀過其他一些帖子,我應該嘗試使用ftp_pasv將被動模式設置爲true,但它沒有改變任何內容。我也嘗試了其他用戶,他們做的是同樣的事情。我嘗試使用filezilla上的憑據,它連接並允許我下載沒有問題。任何幫助將不勝感激,我會張貼下面的代碼。PHP ftp_nlist()即使被動模式和不同的用戶返回布爾(false)

PHP:

連接到FTP

$ftp_server = "Hidden for security"; 
$ftp_user = "Hidden for security"; 
$ftp_pass = "Hidden for security"; 
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server"); 
ftp_pasv($conn_id, true); 

獲取文件名上FTP

$contents = ftp_nlist($conn_id, "."); 
$rm = array(0, 1, 2, 3,); 
foreach($rm as $value) { 
    unset($contents[$value]); 
} 
$contents = array_values($contents); 

localhost上獲取文件名

$dir = scandir("images/"); 
$rmval = array(0, 1, 2); 
foreach ($rmval as $val) { 
    unset($dir[$val]); 
} 
$dir = array_values($dir); 

嘗試登錄

if (ftp_login($conn_id, $ftp_user, $ftp_pass)) { 
    //echo "Connected"; 
    $counter = 0; 
    var_dump($contents); 

    /*foreach ($ftp_content as $file) { 
     ftp_get($conn_id, "images/" . $ftp_content[$counter], $ftp_content[$counter], FTP_BINARY); 
     $counter++; 
    }*/ 
} else { 
    echo "Couldn't Connect"; 
} 

關閉FTP連接

ftp_close($conn_id); 

回答

0

的問題是,我試圖建立到FTP服務器的連接之前,列出我的文件。在$conn_id之後添加$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass)解決了我的問題。現在我可以評估它是真是假,並根據結果運行不同的代碼。