ftp_nlist возвращает логическое значение true - не работает на сервере, находится на dev - PullRequest
1 голос
/ 14 марта 2012

Я написал некоторый код, который обращается к FTP-серверу и загружает плоские файлы.Он работает в моей среде разработки в WAMP (Windows; 5.3.10), но на рабочем сервере (5.3.2 - Linux) происходит сбой при вызове ftp_nlist.

Он сидит там около 30 секунд, а затем умирает сзакодированное сообщение об ошибке [FTP] Unable to retrieve files in the directory.

Вот соответствующий код:

$link = ftp_connect(constant("FTP_SERVER"));
if(!$link)
    die("Unable to open connection to FTP Server: " + constant("FTP_SERVER"));

if(!ftp_login($link,
        constant("FTP_USER"),
        constant("FTP_PASSWORD")))
    die("Unable to login; check username and password.");

if(!ftp_chdir($link,
        constant("FTP_PATH")))
    die("Unable to change to directory: " + constant("FTP_PATH")); 

ftp_pasv($link, true);
clearDownloadDir();  // Delete already downloaded files

/* Get a list of all files */
$files = ftp_nlist($link, '.');
if(!$files)
    die("[FTP] Unable to retrieve files in the directory.");

Константы определены в другом файле как:

define("FTP_SERVER", "ftp.{server}");
define("FTP_PATH", "./Australia/");
define("FTP_USER", "{user}");
define("FTP_PASSWORD", "{password}");

То, чтоя понял, что он подключается (о чем свидетельствует его отсутствие на ftp_connect) и работает локально.FTP_NLIST возвращает логическое значение ИСТИНА (1).Есть идеи?

1 Ответ

1 голос
/ 16 марта 2012

Оказывается, брандмауэр на общем сервере, на котором работал этот код, препятствовал переходу FTP в пассивный режим. Очень странно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...