За последние 24 часа нас посетили 17718 программистов и 1671 робот. Сейчас ищут 887 программистов ...

Загрузка файлов на FTP-сервер

Тема в разделе "PHP для новичков", создана пользователем mazahaler, 11 янв 2018.

  1. mazahaler

    mazahaler Новичок

    С нами с:
    2 ноя 2017
    Сообщения:
    66
    Симпатии:
    2
    Здравствуйте, пытаюсь сделать загрузку файлов на FTP-сервер. Ранее этого не делал.
    Есть у меня файл подключения ftp.php:
    PHP:
    1. <?php
    2. $ftp_server = "192.168.100.5";                  //IP
    3. $ftp_user_name = "Admin";                       //Логин
    4. $ftp_user_pass = "mazahaker123";                //Пароль
    5. $paths = "../FTP";                              //Путь к FTP каталогу
    6. $conn_id = ftp_connect($ftp_server);
    7. // входим при помощи логина и пароля
    8. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    9. // проверяем подключение
    10. if ((!$conn_id) || (!$login_result)) {
    11.        echo "FTP connection has failed!";
    12.        echo "Attempted to connect to $ftp_server for user: $ftp_user_name";
    13.        exit;
    14.    } else {
    15.         echo "Connected to $ftp_server, for user: $ftp_user_name";   //Подключение установлено!
    16.    }
    17.  
    18.    ?>
    Этот скрипт работает нормально, к серверу подключается
    Далее я сделал форму, просто для выбора файла:
    HTML:
    1.  
    2.  
    3. <form class="form-horizontal" role="form" method="post" action="index.php" enctype="multipart/form-data">
    4. <div class="form-group">
    5.     <label for="" class="col-sm-2 control-label">Загрузить документ</label>
    6.     <div class="col-sm-10">
    7.       <input type="file" class="form-control" id="" name="DocFileClass">
    8.     </div>
    9.   </div>
    10. <div class="form-group">
    11.     <div class="col-sm-offset-2 col-sm-10">
    12.       <button type="submit" class="btn btn-default" id="addLISTd" name="addListDoc">Добавить</button>
    13.     </div>
    14.   </div>
    15. </form>
    Затем обрабатываю нажатие кнопки:
    PHP:
    1. if(isset($_POST['addListDoc'])){
    2.  
    3.  
    4. /* FTP --------------------------------------------------------------------------------*/
    5. $filep = $_FILES['DocFileClass']['tmp_name'];
    6. //имя файла на сервере после того, как вы его загрузите
    7. $name = $_FILES['DocFileClass']['name'];
    8. $conn_id = ftp_connect($ftp_server);
    9.    $upload = ftp_put($conn_id, 'public_html/'.$paths.'/'.$name, $filep, FTP_BINARY);
    10.    // проверяем статус загрузки
    11.    if (!$upload) {
    12.           echo "Error: FTP upload has failed!";
    13.       } else {
    14.           echo "Good: Uploaded $name to $ftp_server";
    15.       }
    16.       ftp_close($conn_id);
    17.       set_time_limit(300);
    18. }
    Но файл не загружается. Нужна помощь.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    mazahaler нравится это.
  3. mazahaler

    mazahaler Новичок

    С нами с:
    2 ноя 2017
    Сообщения:
    66
    Симпатии:
    2
    @Ganzal Добавил
    PHP:
    1. ftp_pasv($conn_id,true)
    в файл подключения к FTP. Теперь он выглядит так:
    PHP:
    1. <?php
    2.  
    3. $ftp_server = "192.168.100.5";                    //IP
    4. $ftp_user_name = "Admin";                        //Логин
    5. $ftp_user_pass = "mazahaker123";                //Пароль
    6. $paths = "../FTP";                              //Путь к FTP каталогу
    7.  
    8. $conn_id = ftp_connect($ftp_server);
    9. // включение пассивного режима
    10. ftp_pasv($conn_id, true);
    11. // входим при помощи логина и пароля
    12. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    13. // проверяем подключение
    14. if ((!$conn_id) || (!$login_result)) {
    15.        echo "FTP connection has failed!";
    16.        echo "Attempted to connect to $ftp_server for user: $ftp_user_name";
    17.        exit;
    18.    } else {
    19.         echo "Connected to $ftp_server, for user: $ftp_user_name";
    20.    }
    21.  
    22.    ?>
    но это не помогло. Ничего не изменилось.
    Подскажите, в чем еще может быть дело?
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а просто файл с диска отправит?
     
    mazahaler нравится это.
  5. mazahaler

    mazahaler Новичок

    С нами с:
    2 ноя 2017
    Сообщения:
    66
    Симпатии:
    2
    @Ganzal, не совсем Вас понял. Я пользуюсь FileZilla. Если вручную в каталог домена скопировать какой-нибудь файл и обновить список файлов в FileZilla, то этот файл там появится.
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Вот этот же скрипт взять и программно его отправить. Если не отправится - искать проблему в связки с фтп. Если отправится - смотреть в проблемы при загрузке файлов на веб-сервер.
     
    mazahaler нравится это.