Назад | Перейти на главную страницу

Ошибка при загрузке файла с FTP с помощью PHP

Я пытаюсь загрузить файл с 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