Здравствуйте, пытаюсь сделать загрузку файлов на FTP-сервер. Ранее этого не делал. Есть у меня файл подключения ftp.php: PHP: <?php $ftp_server = "192.168.100.5"; //IP $ftp_user_name = "Admin"; //Логин $ftp_user_pass = "mazahaker123"; //Пароль $paths = "../FTP"; //Путь к FTP каталогу $conn_id = ftp_connect($ftp_server); // входим при помощи логина и пароля $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // проверяем подключение if ((!$conn_id) || (!$login_result)) { echo "FTP connection has failed!"; echo "Attempted to connect to $ftp_server for user: $ftp_user_name"; exit; } else { echo "Connected to $ftp_server, for user: $ftp_user_name"; //Подключение установлено! } ?> Этот скрипт работает нормально, к серверу подключается Далее я сделал форму, просто для выбора файла: HTML: <form class="form-horizontal" role="form" method="post" action="index.php" enctype="multipart/form-data"> <div class="form-group"> <label for="" class="col-sm-2 control-label">Загрузить документ</label> <div class="col-sm-10"> <input type="file" class="form-control" id="" name="DocFileClass"> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <button type="submit" class="btn btn-default" id="addLISTd" name="addListDoc">Добавить</button> </div> </div> </form> Затем обрабатываю нажатие кнопки: PHP: if(isset($_POST['addListDoc'])){ /* FTP --------------------------------------------------------------------------------*/ $filep = $_FILES['DocFileClass']['tmp_name']; //имя файла на сервере после того, как вы его загрузите $name = $_FILES['DocFileClass']['name']; $conn_id = ftp_connect($ftp_server); $upload = ftp_put($conn_id, 'public_html/'.$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); set_time_limit(300); } Но файл не загружается. Нужна помощь.
Подключение к серверу ещё не значит успех. см https://php.ru/forum/threads/rabota-s-ftp-serverom.65685/
@Ganzal Добавил PHP: ftp_pasv($conn_id,true) в файл подключения к FTP. Теперь он выглядит так: PHP: <?php $ftp_server = "192.168.100.5"; //IP $ftp_user_name = "Admin"; //Логин $ftp_user_pass = "mazahaker123"; //Пароль $paths = "../FTP"; //Путь к FTP каталогу $conn_id = ftp_connect($ftp_server); // включение пассивного режима ftp_pasv($conn_id, true); // входим при помощи логина и пароля $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // проверяем подключение if ((!$conn_id) || (!$login_result)) { echo "FTP connection has failed!"; echo "Attempted to connect to $ftp_server for user: $ftp_user_name"; exit; } else { echo "Connected to $ftp_server, for user: $ftp_user_name"; } ?> но это не помогло. Ничего не изменилось. Подскажите, в чем еще может быть дело?
@Ganzal, не совсем Вас понял. Я пользуюсь FileZilla. Если вручную в каталог домена скопировать какой-нибудь файл и обновить список файлов в FileZilla, то этот файл там появится.
Вот этот же скрипт взять и программно его отправить. Если не отправится - искать проблему в связки с фтп. Если отправится - смотреть в проблемы при загрузке файлов на веб-сервер.