Передать файлы/папки удаленному серверу через FTP + php код. Часть 2

Передать файлы/папки удаленному серверу через FTP + php код. Часть 2

За счет PHP мы можем подключиться к удаленному серверу и работать с файлами и папками его сайтов. Это открывает множество возможностей. Рассмотрим основные методы, которые позволят оперировать с удаленным сервером напрямую из PHP.

В прошлой части я подготовил код, который позволяет подключиться к фтп другого сервера. Будем использовать его:

<?php header('Content-Type: text/html; charset=utf-8');

$ftp_serv = "ftp.demo.ru";
$ftp_user = "nameuser";
$ftp_pass = "mypassword";

//Установить соединение или выйти
$conn_id = @ftp_connect($ftp_serv) or die("Не удалось установить соединение с $ftp_serv");

//Вход по FTP
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
ftp_pasv($conn_id, true); //включение пассивного режима
echo "Успешно соединились с $ftp_serv под пользователем $ftp_user<br>";
}
else {
echo "Не удалось cjtlbybnmcz под пользователем $ftp_user<br>";
}

//Закрываем соединение
ftp_close($conn_id);
?>

В месте кода, где успешно установлено соединение с сервером вставляйте следующие команды:

Создание директории

if (ftp_mkdir($conn_id, '/photo')) { echo "Создана директория<br>"; }
else { echo "Не удалось создать директорию <br>"; }

В корне ftp создаст эту папку. Можно создать только 1 директорию за раз. Создать /photo/12 не получится, если папка photo не существует, а если существует - то создаст внутри нее 12. Также выдаст ошибку если photo уже существует и мы пытаемся создать ее заново.

Чтобы загрузить файл на сервер в эту созданную директорию, напишите код:

if (ftp_put($conn_id, '/photo/stat.html', $_SERVER['DOCUMENT_ROOT'].'/block.html', FTP_ASCII)) { echo "Файл успешно загружен на сервер<br>"; }
else { echo "Не удалось загрузить файл на сервер<br>"; }

Синтаксис: ftp_put($conn_id, $fileTo, $fileFrom, $mode);

Здесь такие параметры:

  • $conn_id -идентификатор FTP
  • $fileTo - в какую директорию и с каким именем (+ расширением) сохранить файл на удаленный сервер
  • $fileFrom - из какой директории текущего сервера (где запущен этот скрипт) предоставить на загрузку файл
  • $mode - метод передачи. Обычно, для текстовых - FTP_ASCII и картинок - FTP_BINARY

Удаление директории

if (ftp_rmdir($conn_id, '/photo/summer')) { echo "Директория удалена<br>";} else { echo "Не удалось удалить директорию<br>"; }

Удаление файла на сервере

if (ftp_delete($conn_id, '/photo/12.html')) { echo "Файл удален<br>"; } else { echo "Не удалось удалить файл<br>"; }

Получение списка файлов директории /photo/

$now_dir = ftp_nlist($conn_id, '/photo/');
for($as_logs = 0; $as_logs <= count($now_dir); $as_logs++) {
echo $now_dir[$as_logs].'<br>';
}

Для большинства операций достаточны функции (полный список вдвое больше):

ftp_mkdir - создаёт новую директорию
ftp_put - загружает файл в удаленный сервер
ftp_rmdir - удаляет выбранную директорию
ftp_delete - удаляет файл на удаленном сервере
ftp_cdup - позволяет перейти в родительскую директорию
ftp_chdir - меняет текущий путь на удаленном сервере
ftp_chmod - устанавливает права доступа к файлу
ftp_get - загружает файл с удаленного сервера
ftp_nlist - показывает список файлов в выбранной директории
ftp_rename - переименовывает файл
ftp_size - показывает размер файла

Думаю, разобравшись с этим кодом, вам не достанет сложности изучить новые функции по работе с фтп. Эти примеры я лично создал и каждый проверил на своих серверах - они рабочие. Также для удобства работы с FTP я сделал класс - ведь ООП, это всегда хорошо! Пользуйтесь на здоровье!

| | Передать файлы/папки удаленному серверу через FTP + php код. Часть 2 | За счет PHP мы можем подключиться к удаленному серверу и работать с файлами и папками его сайтов. Это открывает множество возможностей. Рассмотрим осн | http://blogprogram.ru/wp-content/uploads/2017/10/803-131x131.jpg

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>