Я пытаюсь загрузить файл с FTP с помощью PHP. Я протестировал сценарий на 2 серверах, и он отлично работает. Но он не работает на сервере, где мне нужно запустить этот скрипт. Любая помощь будет заметна.
Я получаю эту ошибку
Предупреждение: ftp_nb_fget (): для типа установлено значение I. в /home/sites/example.com/public_html/path-to-file/download-file.php в строке 18
<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
$ftp_server = "server_address";
$ftp_username = "username";
$ftp_userpass = "password";
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
$src_file = 'source_file'; //File to write
$dest_file = 'server_file'; //File to download
$data_file = fopen($src_file, 'w');
// Initate the download
$ret = ftp_nb_fget($ftp_conn, $data_file, $dest_file, FTP_BINARY);
while ($ret == FTP_MOREDATA) {
// Do whatever you want
echo ".";
// Continue downloading...
$ret = ftp_nb_continue($ftp_conn);
}
if ($ret != FTP_FINISHED) {
echo "There was an error downloading the file...";
exit(1);
}
?>
Я также пробовал ftp_get вместо ftp_nb_fget, но получал ту же ошибку, что и выше.
В основном, что могло произойти - вы находитесь за брандмауэром, но пытаетесь использовать активный сеанс ftp (который вы и есть).
Это объяснило бы, почему ваш ftp-сеанс установлен правильно, но получить файл не удается.
Посмотрите, как использовать пассивный ftp