Выбор и настройка FTP-клиента. Программы для работы с FTP протоколом - FTP клиенты и серверы Загрузка и удаление файлов по протоколу FTP

Протокол FTP (File Transfer Protocol - протокол передачи файлов) - один из старейших протоколов Интернета, предназначенный для передачи файлов между двумя хостами.

Как правило, при работе с FTP выполняются следующие стандартные действия:

Соединение с удаленным FTP-сервером
регистрация на FTP-сервере
загрузка файлов с сервера или на сервер
закрытие соединения
Соединение с FTP-сервером
Соединение с удаленным FTP-сервером выполняется с помощью функции ftp_connect:

Синтаксис:

ftp_connect (string host [, int port [, int timeout]])


В качестве обязательного параметра эта функция принимает имя хоста host, с которым необходимо установить соединение. Второй необязательный параметр port указывает на номер порта, через который осуществляется соединение. Если этот параметр не указан, то соединение осуществляется через порт 21, являющийся стандартным FTP-портом. Третий необязательный параметр определяет максимально время выполнения сценария (тайм-аут) и по умолчанию равен 90 секундам.

Соединение с удаленным FTP-сервером


Регистрация на FTP-сервере
После того, как соединение установлено, необходимо зарегистрироваться на сервере с определенным именем и паролем. Сделать это можно при помощи функции ftp_login.

$user = "maks";
$password = "password";
$result = ftp_login($connect, $user, $password);
?>


Как видно из листинга, функция ftp_login принимает три параметра: дескриптор FTP-соединения, возвращаемый функцией ftp_connect, имя пользователя и пароль.

Замечание: Регистрация на сервере не требуется, если FTP-сервер является анонимным.

Закрытие соединения
По окончании сеанса связи с FTP-сервером, нужно закрыть FTP-соединение с помощью функции ftp_quit, принимающей в качестве единственного параметра дескриптор FTP-соединения:

Синтаксис:

ftp_quit($connect);

Синтаксис:

bool ftp_get(int ftp_connect, string local_file, string remote_file, int mode);


Аргумент mode, задающий режим пересылки файлов, должен быть указан как константа FTP_BINARY или FTP_ASCII. Режим FTP_ASCII используется для пересылки файлов, состоящих только из ASCII-символов (т. е. текстовых файлов), а двоичный режим - для пересылки всех остальных файлов.

К примеру:

$local_file = "/users/local.txt";
$remote_file = "remote.txt";
ftp_get($connect, $local_file, $remote_file, FTP_BINARY);
?>


Переход в родительский каталог
Изменение текущего рабочего каталога на родительский производится с помощью функции ftp_cdup:

Синтаксис:

bool ftp_cdup(int ftp_connect);


Пример:


Изменение текущего рабочего каталога
Изменение текущего рабочего каталога на указанный осуществляется при помощи функции ftp_chdir:

$new_dir = "web";
ftp_chdir($connect, $new_dir);
?>


Как видно из этого листинга, функция ftp_chdir имеет два параметра: дескриптор соединения $connect и имя нового каталога $new_dir.

Удаление файлов
Удалить файл с FTP-сервера можно с помощью функции ftp_delete:

Синтаксис:

bool ftp_delete(int ftp_connect, string remote_file);


Здесь ftp_connect - дескриптор соединения , а remote_file - имя удаляемого файла .

Создание каталога
Новый каталог можно создать, используя функцию ftp_mkdir:

Синтаксис:

string ftp_mkdir(int ftp_connect, string directory);


Эта функция возвращает имя созданного каталога или false в случае неудачи:

$dir = "web";
$created_dir = ftp_mkdir($connect, $dir);
?>


Перечисление файлов в каталоге
Узнать, какие файлы находятся в текущем каталоге, можно применив функцию ftp_nlist:

Синтаксис:

array ftp_nlist(int ftp_connect, string directory);


Пример:

$file_list = ftp_nlist($connect, ".");
if(is_array($file_list))
{
foreach($file_list as $file)
{
echo("$file
");
}
}
?>


Переименование файлов
Переименовать файлы на FTP-сервере осуществляется с помощью функции ftp_rename:

Синтаксис:

bool ftp_rename(int ftp_connect, string from, string to);


Удаление каталогов
Для удаления каталогов применяется функция ftp_rmdir:

Синтаксис:

bool ftp_rmdir(int ftp_connect, string directory);


Определение размера файлов
Для определения размера файлов существует функция ftp_size:

Синтаксис:

int ftp_size(int ftp_connect, string filepath);


В случае неудачи функция возвращает -1. К примеру:


Посылка команды на сервер
Послать на сервер команду можно с помощью функции ftp_site:

Синтаксис:

bool ftp_site(int ftp_connect string command);


Эта функция посылает на сервер команду SITE. Как правило, с помощью команд SITE выполняются такие команды операционной системы, как chmod. Список команд SITE, поддерживаемый сервером можно узнать, подключившись к нему и выполнив команду REMOTEHELP. Ниже приведен код, позволяющий изменить права доступа к файлу на удаленном сервере:

$command = "chmod 0766 /web/user/file.txt";
ftp_site($connect, $command);
?>


Работа через брандмауэр
При работе с FTP-сервером через брандмауэр часто бывает необходимо изменить активный режим, при котором соединение инициируется сервером, на пассивный, при котором соединение инициируется клиентом. Это можно сделать, применив функцию ftp_pasv:

$pasv_flag = true;
$pasv_result = $pasv_flag ? "enabled" : "disabled";
ftp_pasv($connect, $pasv_flag);
?>

Назад

FTP-клиент - это программа, с помощью которой вы получаете доступ к файлам своего сайта, хранящимся где-то на хостинге в недрах Всемирной паутины. Файлы можно создавать, перемещать, копировать, управлять правами доступа, удалять - в общем, делать с ними практически всё то же, что и с локальными. Даже интерфейс FTP-клиентов зачастую напоминает интерфейс известного многим файлового менеджера Total Commander.

В своей работе FTP-клиент использует специальный протокол передачи файлов - собственно, FTP. Есть разновидности защищённого подключения (FTPS, SFTP), но суть не меняется - ПО позволяет удобно управлять файлами на удалённом сервере.

Как и программ другого назначения, FTP-клиентов существует очень много, а привязанность пользователя к одному из них зависит исключительно от личных предпочтений.

Мне, например, удобно пользоваться программой FileZilla . Она кроссплатформенная, то есть доступна и для Linux, и для Windows, и для Mac OS, к тому же поддерживает защищённое соединение и распространяется совершенно бесплатно. Но вы можете отдать предпочтение клиентам WinSCP, FireFTP, CuteFTP, Cyberduck, GoFTP или любому другому. С FTP умеют работать даже Far Manager и Total Commander.

Так как мне по душе FileZilla, все действия ниже буду рассматривать на примере этого клиента.

Подключение

Сразу после регистрации хостинга на электронную почту приходит письмо с важной информацией. Есть в нём и данные для входа по FTP: адрес сервера (IP), имя пользователя, пароль, порт. Если порта в этих данных не было, либо не указывайте его вообще, либо введите 21.

Заполните данными соответствующие поля верхней части окна FTP-клиента и нажмите кнопку Быстрое соединение .

Окно клиента разделено на пять частей. Сверху находится область с информацией о статусе подключения, ошибках, успешном соединении, последней совершённой операции и т. д. В левой части окна находятся локальные файлы, в правой - хранящиеся удалённо.

Чтобы в следующий раз не вводить всё заново, щёлкните стрелку справа от кнопки Быстрое соединение и выберите нужное подключение из списка.

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

В главном меню программы выполните команду Файл -> Менеджер сайтов , в открывшемся окне щёлкните на кнопке Новый сайт , введите необходимые данные (не забудьте выбрать тип входа Нормальный ) и нажмите Соединиться .

Управление файлами

Мало чем отличается от управления ими в любом файловом менеджере. Чтобы загрузить файлы на сервер, перетащите их из левого окна в правое с помощью мыши. Для скачивания файлов к себе на компьютер перетащите их справа налево. Все остальные операции выполняйте с помощью горячих клавиш или команд контекстного меню.

Чтобы выставить CHMOD, в контекстном меню выполните команду , и меняйте их в появившемся окне.

Хотя для изменения файлов вы можете использовать команду контекстного меню Просмотр/Правка , всё же во избежание неприятных ситуаций (в частности, по умолчанию файлы открываются в Блокноте, и сохранение через него может повлиять на кодировку) рекомендую скачивать требующий правки файл на ПК, изменять его в привычном редакторе и загружать обратно.

Как видите, ничего сложного нет, справиться с работой через FTP не проблема.

Для чего нужен FTP?

Довольно часто возникает необходимость передачи файлов значительных размеров (от нескольких до сотен мегабайт). Использовать электронную почту для этих целей не всегда представляется возможным, так как объем письма для передачи может быть ограничен почтовым сервером, а делить файл на большое количество частей не совсем удобно. В таких случаях для обмена файлами нашим клиентам мы предлагаем воспользоваться FTP-сервером компании.

FTP расшифровывается как File Transfer Protocol (протокол передачи файлов). Основное назначение FTP - пересылать (копировать, передавать) файлы в Интернете (с удаленного компьютера на локальный и наоборот).

FTP-сервера умеют принимать и отдавать (upload & download) файлы с докачкой на прерванном месте.

Чтобы воспользоваться протоколом FTP, понадобится специальная программа - так называемый FTP-клиент. FTP-клиентом может служить интернет-браузер (например, MS Internet Explorer), Total Commander, Filezilla, специализированная программа CuteFTP и другие.

Все файлы, подготовленные к передаче на наш FTP-сервер, должны быть запакованы в архив.
Закачивать можно только отдельные файлы! Не пытайтесь закачать сразу весь каталог.

Каталог incoming доступен на запись, для закачки данных на сервер.
Все остальные каталоги доступны на чтение, для копирования данных с сервера.

Описание работы с наиболее популярными FTP-клиентами:

Internet Explorer

Это, пожалуй, самый простой способ и быстрый. Стандартный обозреватель всех операционных систем от Microsoft.
В строке "адрес" набрать ftp://ftp.сайт . В случае успешного соединения Вы должны увидеть список каталогов нашего FTP-сервера.
Файлы можно просто перетаскивать в это окно IE.

Еще один простой и удобный пример.
Бесплатный FTP-менеджер Filezilla . Скачать Filezilla можно с официального сайта http://www.filezilla.ru .

Установите и запустите программу.
В поле "Хост" набираем ftp://ftp.сайт и нажимаем "Ввод" . При успешном соединении в правом окошке появляются каталоги FTP-сервера.

Процесс копирования файлов на FTP-сервер или с него осуществляется следующим образом.

Для копирования файла с сервера :

  • в правом окне войдите в нужную папку на FTP-сервере
  • выберите файл для скачки и нажмите на него правой кнопкой мыши
  • выберите пункт "Скачать". Копирование будет производиться в каталог, открытый в левом окне программы.

Для копирования файла на сервер :

  • в правом окне войдите в папку incoming на FTP-сервере
  • в левом окне выберите нужный файл-архив и нажмите на него правой кнопкой мыши
  • выберите пункт "Закачать на сервер"

При копировании какого-либо файла в каталог, где уже имеется файл с таким же именем, новый файл записывается поверх старого.
При обрыве связи по каким-либо причинам производим "докачку" файла.

Total Commander 7.0

Проще всего нажатием комбинации Ctrl+N вызвать приглашение ftp-соединения и ввести ftp://ftp.сайт .


Процесс копирования файлов на FTP-сервер или с него ничем не отличается от обычного копирования файлов на жестком диске.

Остались вопросы?

Q : Почему я не могу закачать некоторые файлы?
A : Имена файлов, закачиваемых на FTP-сервер компании ЗАО НВП "Болид", могут содержать только буквы латинского алфавита , цифры, символы "." (точка) и "_" (подчеркивание). Имя файла не должно начинаться с точки.

Q : Почему я не могу закачать папку с файлами?
A : Закачивать можно только отдельные файлы. Перед закачкой лучше всего заархивировать данные.

Q : Почему у меня нет соединения с FTP-сервером?
A : Вам необходимо проверить соединение с FTP-сервером. Самый простой способ - с использованием командной строки "Пуск - Выполнить - cmd" . В командной строке набрать "telnet ftp.сайт 21" , и у Вас должны появиться похожие строки экрана.


При удачном соединении Вы должны увидеть ответ от сервера (см. рисунок 2). Если соединение не устанавливается, то Вы увидите сообщение об ошибке. Обратитесь к администратору сети для выяснения типа подключения к Интернет.


Также возможна работа по протоколу FTP через прокси-сервер. Большинство программ - FTP-клиентов поддерживают эту возможность. Настройки прокси-сервера уточните у администратора сети.

По всем вопросам обращайтесь

FTP - это протокол передачи файлов, название которого является аббревиатурой от английского File Transfer Protocol. И хотя в настоящее время практически все функции FTP доступны через другой протокол - HTTP, - все же его еще рано отправлять на виртуальную свалку - он часто используется, например, для доступа к крупным архивам файлов в Интернете и в локальной сети, а также очень удобен для удаленной работы с сервером, на котором хостится ваш веб-сайт.

Работать с FTP-серверами можно непосредственно в окне браузера, но это крайне неудобно, так как, помимо основных функций для удаленной работы с файлами, браузер никакими дополнительными возможностями не обладает. То есть вы, конечно, сможете сохранить файл на локальный диск, переименовать его, или даже удалить, но вот, например, осуществить поиск нужного файла или, скажем, отредактировать атрибуты файла вам не удастся.

Неплохой альтернативой такому подходу является использование встроенных в файловые менеджеры функций работы с FTP-серверами. Такими функциями обладают, например, популярный Total Commander или любимец программистов FAR.

Но тема этой статьи - специализированные программы для работы с FTP, поэтому сосредоточим свое внимание именно на них.

Умный FTP
Непритязательным пользователям, которые не хотят разбираться с кучей настроек и привыкли к обычному интерфейсу проводника Windows, возможно, приглянется небольшая, но довольно удобная программа SmartFTP . Что умеет SmartFTP? Достаточно много - для того чтобы удовлетворить нужды обычного пользователя: просмотр содержимого FTP-серверов, работа с несколькими серверами или с несколькими подключениями к одному серверу одновременно, возобновление прерванных процессов скачивания.

Кроме того, SmartFTP поддерживает Proxy/Firewall (SOCKS5, SOCKS4, SOCKS4A (MS Proxy) Wingate, Winproxy, CSM Passive Transfer Mode (PASV), имеет встроенный механизм поиска наиболее подходящего URL, позволяет настроить планировщик задач и так далее. Хорошая новость и для тех, кто не дружит с английским: интерфейс SmartFTP переведен на двадцать языков. Русская локализация доступна по этому адресу .

В завершение описания "умного FTP" отмечу, что эта программа распространяется как trial-версия. То есть вы можете использовать все ее функции только ограниченное количество дней, а точнее - 74. После чего, если программа придется вам по душе, необходимо будет за нее заплатить.

Путешественник
Всегда хорошо, когда есть из чего выбирать. Рынок FTP-клиентов, разумеется, не ограничивается лишь SmartFTP. Существует множество других, не менее замечательных программ.

Что новенького?
К сожалению, в большинстве FTP-клиентов отсутствует возможность отслеживать изменения на FTP-сервере. Допустим, свежие антивирусные базы в вашей локальной сети размещаются в специально отведенной для этого папочке. Заходить каждый день по несколько раз, чтобы проверить обновление - задача, согласитесь, более подходящая для робота, чем для занятых людей. К счатью, такие роботы существуют. Вот два представителя их племени.

Simple FTP Monitor - программа, предназначенная для отслеживания изменений на FTP-серверах.

Коротко перечислю основные возможности программы. Итак, Simple FTP Monitor:

  • следит за состоянием FTP-серверов (доступен / не доступен);
  • следит за появлением, обновлением и удалением ресурсов на FTP-серверах;
  • формирует отчеты об изменениях на серверах практически в любом удобном для пользователя формате;
  • предоставляет возможность локального просмотра содержимого FTP-сервера (без установления соединения);
  • осуществляет поиск файлов по маске среди отсканированных серверов;
  • сохраняет информацию о файлах практически в любом удобном пользователю формате (листы закачки, ссылки и тому подобное)
  • производит поиск FTP-серверов на указанном диапазоне IP-адресов;
  • создает отчеты состояний серверов. Например, можно на собственном веб-сервере завести страницу - мониторинг состояния FTP-серверов определенного сегмента сети

Также настраивается отчет состояния через окно "Настройки программы". Отчет можно сохранять на диске или "закачивать" по FTP. Отображаются следующие параметры: статус (доступен, не доступен, не пускает), адрес, имя, логин, пароль, обновления (есть или нет), время последнего сканирования, число файлов (в том числе - новых, обновленных и удаленных), время последнего опроса.

Похожими возможностями обладает еще одна утилита - FTPInfo . В случае если на заданном FTP-сервере произошли какие-то изменения, FTPInfo автоматически создаст отчет и уведомит вас по почте.

WANTED!
А что делать, если известно наименование файла, а на каком FTP-сервере он расположен - нет. В этом случае вам пригодится сервис FTP-Search (например, Filesearch.ru или Files.ru). В отличие обычной поисковой системы, поиск по FPT осуществляется не по по ключевым словам и описаниям, а по имени файла или каталога.

От вас требуется ввести название файла (или его часть), а также выбрать рубрику, к которой он принадлежит (про файл, музыка в формате mp3, картинки или что-то еще). Результатом работы сервиса будет список FTP-серверов, на которых имеются файлы, соответствующие введенным критериям.