Загрузка файла с ftp на сайт по крону

Тема в разделе "PHP", создана пользователем pobo3, 9 май 2018.

Статус темы:
Закрыта.
Модераторы: latteo
  1. pobo3

    pobo3 Постоялец

    Регистр.:
    20 окт 2014
    Сообщения:
    56
    Симпатии:
    1
    Доброй ночи.

    стоит задача - нужно скачивать файл с ftp в определенную папку на сайте.
    Не силен в php, почитал форумы инструкции, попробовал следующее

    <?php

    // объявление переменных
    $local_file = 'имя_файла';
    $server_file = 'имя_файла';
    $ftp_server="ftp://сервер";
    $ftp_username="логин";
    $ftp_userpass="пароль";

    // установка соединения
    $conn_id = ftp_connect($ftp_server);

    // вход с именем пользователя и паролем
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

    $upload = ftp_put($conn_id, '/путь/до/локального/файла'.$paths.'/'.$name, $filep, FTP_BINARY);
    // проверяем статус загрузки
    if (!$upload) {
    echo "Error: FTP upload has failed!";
    } else {
    echo "Good: Uploaded $name to $ftp_server";
    }

    // закрытие соединения
    ftp_close($conn_id);

    ?>


    и



    <?php

    $local_file = 'имя_файла';
    $server_file = 'имя_файла';
    $ftp_server="ftp://сервер";
    $ftp_username="логин";
    $ftp_userpass="пароль";

    $conn = ftp_connect($ftp_server);

    $login_result = ftp_login($conn, $ftp_username, $ftp_userpass);


    if (ftp_get($conn, $LocalfileName, $ServerfileName, FTP_BINARY)) {
    echo "имя_файла $LocalfileName \n";
    }
    else {
    echo "Ошибка\n";
    }

    ftp_close($conn);

    ?>


    запускаю через крон - ошибка

    подозреваю что дело может быть в то, что не указываю полный путь до файла на ftp.
    Но его пока не предоставили.

    Подскажите пожалуйста, может что еще не так делаю? или может есть возможность реализовать все это другим способом?

    Спасибо
     
  2. Den1xxx

    Den1xxx

    Moderator
    Регистр.:
    15 янв 2014
    Сообщения:
    275
    Симпатии:
    148
    Вот когда ФТП доступ будет, тогда и надо будет его тестировать.

    Какая?

    Хотя без настройнного ФТП писать скрипты бесполезно.
    Сначала настройте доступ с помощью мееджера — например Filezilla.
    Убедитеь, что все работает.
    Потом уже пишите скрипт, пути можете скоировать с файлменеджера.
     
  3. Casper_R

    Casper_R Создатель

    Регистр.:
    3 май 2007
    Сообщения:
    87
    Симпатии:
    30
    Мой обычный рабочий вариант:
    PHP:
    $curl curl_init();
            
    curl_setopt$curlCURLOPT_USERAGENT"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.1.2883.87 Safari/537.36" );
            
    $file fopen("filepath_to_save"'w'); // путь к файлу, куда сохраняем
            
    curl_setopt($curlCURLOPT_URL"ftp://host/file"); // путь к файлу на фтп
            
    curl_setopt($curlCURLOPT_USERPWD"FTP_LOGIN:FTP_PASS"); // если фтп с паролем
            
    curl_setopt$curlCURLOPT_RETURNTRANSFERtrue );
            
    curl_setopt$curlCURLOPT_FOLLOWLOCATION);
            
    curl_setopt$curlCURLOPT_FRESH_CONNECT);
            
    curl_setopt($curlCURLOPT_FILE$file);
    $result curl_exec($curl);
    curl_close($curl);
    fclose($file);
     
    Последнее редактирование: 9 май 2018
    pobo3 нравится это.
  4. v1rus74

    v1rus74

    Moderator
    Регистр.:
    2 авг 2016
    Сообщения:
    74
    Симпатии:
    84
    Это одной строкой кода делается:
    PHP:
    copy('ftp://login:password@sitename.com/path/to/file.txt''local/path/to/file.txt');
    Путь на FTP относительно домашнего каталога FTP-юзера, на принимающем сервере - любой валидный.
     
    Последнее редактирование: 9 май 2018
    Keegan нравится это.
Статус темы:
Закрыта.