<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Электронный научно-практический журнал «Современная техника и технологии» &#187; сервер FTP</title>
	<atom:link href="http://technology.snauka.ru/tags/server-ftp/feed" rel="self" type="application/rss+xml" />
	<link>https://technology.snauka.ru</link>
	<description></description>
	<lastBuildDate>Fri, 30 Jan 2026 18:56:12 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Разработка FTP-менеджера с помощью PHP</title>
		<link>https://technology.snauka.ru/2015/02/5747</link>
		<comments>https://technology.snauka.ru/2015/02/5747#comments</comments>
		<pubDate>Tue, 10 Feb 2015 09:20:05 +0000</pubDate>
		<dc:creator>Главный редактор</dc:creator>
				<category><![CDATA[Общая рубрика]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[FTP-manager]]></category>
		<category><![CDATA[FTP-server interface]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[интерфейс]]></category>
		<category><![CDATA[менеджер FTP]]></category>
		<category><![CDATA[сервер FTP]]></category>

		<guid isPermaLink="false">https://technology.snauka.ru/?p=5747</guid>
		<description><![CDATA[Одним из первых прикладных протоколов является протокол передачи файлов (FTP-File Transfer Protocol). Разработан он в 1971 году и применяется в виде доступа к файлам удаленных хостов. На основе протокола FTP, разрабатывается программное обеспечение (ПО) для доступа к FTP-серверу. FTP-сервер – это удаленный хост, который предоставляет доступ к своим ресурсам и к хранящемся на нем файлам. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify; background: white;">Одним из первых прикладных протоколов является протокол передачи файлов (FTP-File Transfer Protocol). Разработан он в 1971 году и применяется в виде доступа к файлам удаленных хостов. На основе протокола FTP, разрабатывается программное обеспечение (ПО) для доступа к FTP-серверу. FTP-сервер – это удаленный хост, который предоставляет доступ к своим ресурсам и к хранящемся на нем файлам. Такое ПО носит название FTP – менеджер. В зависимости от поставленных целей, FTP-менеджеры могут предоставлять файлы и ресурсы так, как будто они имеются на компьютере пользователя, либо просто выполняют свою роль в виде отправки команд пользователя и файлов.</p>
<p style="text-align: justify;">Протокол FTP и его модель описана в книге Н. Дилипа «Стандарты и протоколы интернета» [1]. В лабораторном практикуме С.Л. Сурменко описаны команды FTP протокола, его функционирование и демонстрация FTP-менеджера [2]. Пример разработки FTP-менеджера в программной среде Delphi продемонстрировано в книге С.М. Парижского [3]. А.В.Иванов провел исследование безопасности протокола FTP [4]. Автоматическое управление на основе ftp-соединений в домене показал И.Коробко [5]. А.Луконькин рассмотрел работу с ftp-сервером из «1С:Предприятие» [6]. Р.И.Баженов, А.П.Корников применяли сетевые технологии в своих исследованиях [7, 8].</p>
<p style="text-align: justify;">Рассмотрим разработку собственного FTP-менеджера, используя язык программирования PHP.</p>
<p style="text-align: justify;">Для начала создадим класс, который будет содержать в себе различные функции для взаимодействия с FTP-сервером. Нашей задачей является, разработка FTP-менеджера, используя стандартные FTP команды для передачи их FTP-серверу, однако некоторые готовые PHP функции мы все же будем использовать.</p>
<p style="text-align: justify;">В созданном классе напишем функцию Connect() для соединения с FTP-сервером (Рисунок 1).</p>
<p style="text-align: center;"><img src="https://technology.snauka.ru/wp-content/uploads/2015/02/020915_1819_FTP1.png" alt="" /></p>
<p style="text-align: center;"><span>Рисунок 1 – PHP-функция соединения с FTP-сервером<br />
</span></p>
<p style="text-align: justify;">Функция Connect() содержит в себе 3 параметра: server, user и pass. В первый параметр передаем хост (или IP) FTP-сервера, во втором параметре передаем имя пользователя FTP-сервера, а в третьем – пароль данного пользователя.</p>
<p style="text-align: justify;">При успешном соединении с хостом данного FTP-сервера, функция проверяет имя пользователя и пароля, отправляя FTP-серверу команду USER и PASS. Если аутентификация прошла успешно, то функция возвращает полученный идентификатор соединения данного FTP-сервера для последующего обращения различных команд к данному потоку FTP-сервера (Рисунок 2).</p>
<p style="text-align: center;"><img src="https://technology.snauka.ru/wp-content/uploads/2015/02/020915_1819_FTP2.png" alt="" /></p>
<p style="text-align: center;"><span>Рисунок 2 – PHP-функции отправки FTP команд<br />
</span></p>
<p style="text-align: justify;">Во всех случаях в функции обычно передаются 2 параметра. Первым параметром является идентификатор FTP-сервера, который мы получили после выполнения функции Connect(), а вторым параметров является дополнительные команды/запросы для выполнения тех или иных операции.</p>
<p style="text-align: justify;">Например, в функции USER(), в первом параметре передается идентификатор FTP-сервера, а во втором параметре передается имя пользователя. Внутри каждой функции используется еще одна функция – ftp_raw(), эта функция отправляет различные произвольные команды FTP-серверу. Зная команды FTP-протокола, мы можем, в нашем примере, произвести аутентификацию имя пользователя с помощью команды вида «USER имя_пользователя».</p>
<p style="text-align: justify;">Помимо выполнения и отправки различных FTP команд, мы также еще одновременно записываем всю информацию в лог с помощью функции Message() (Рисунок 3). Позже можно будет вызвать функцию Log() для дальнейшего отображения лога в окне веб-интерфейса и проследить все происходящие события (Рисунок 4). В случае успеха или неудачи, мы всегда можем посмотреть возвращаемые коды ответа и выяснить статус данных действии.</p>
<p style="text-align: justify;">Функция Message() :</p>
<p style="text-align: center;"><img src="https://technology.snauka.ru/wp-content/uploads/2015/02/020915_1819_FTP3.png" alt="" /></p>
<p style="text-align: center;"><span>Рисунок 3 – PHP-функция записи лога<br />
</span></p>
<p style="text-align: justify;">В первом параметре передается само сообщение, для которого нужно будет выводить в лог, а во втором параметре передается тип данного сообщения. В нашем случае существуют всего четыре типа: D (Default) – обычное оповещение в логе, C (Client) – оповещение со стороны клиента, S (Server) – оповещение со стороны сервера и E (Error) – оповещение с ошибкой или неудачах каких-либо операции. Эти сообщения обрабатываются, и задают HTML/CSS стиль данного текста в нужный цвет окраски, в зависимости от того какой это тип сообщения. D – по умолчанию (т.е. без цвета), C – синего цвета, S – зеленного цвета и E – красного цвета. Все сгенерированные и обработанные сообщения записываются в сессию $_SESSION["message"].</p>
<p style="text-align: justify;">Функция <em>Log()</em>:</p>
<p style="text-align: center;"><img src="https://technology.snauka.ru/wp-content/uploads/2015/02/020915_1819_FTP4.png" alt="" /></p>
<p style="text-align: center;"><span>Рисунок 4 – PHP-функция вывода лога<br />
</span></p>
<p style="text-align: justify;">Приступим к описанию интерфейса программы. Для создания интерфейса были использованы инструменты средств HTML и CSS. Первым делом создали окно авторизации, где в полях нужно ввести сервер, логин и пароль для соединения с FTP-сервером (Рисунок 5).</p>
<p style="text-align: center;"><img src="https://technology.snauka.ru/wp-content/uploads/2015/02/020915_1819_FTP5.png" alt="" /></p>
<p style="text-align: center;"><span>Рисунок 5 – Окно авторизации<br />
</span></p>
<p style="text-align: justify;">После успешной авторизации пользователь переходит в основное окно FTP-менеджера (Рисунок 6).</p>
<p style="text-align: center;"><img src="https://technology.snauka.ru/wp-content/uploads/2015/02/020915_1819_FTP6.png" alt="" /></p>
<p style="text-align: center;"><span>Рисунок 6 – Главное окно FTP-менеджера<br />
</span></p>
<p style="text-align: justify;">Рассмотрим более подробно это окно. В верхней части расположены кнопки, которые имеют свои определенные функции для взаимодействия с файлами/папками на FTP-сервере, такие как: «Обновить», «Копировать», «Вырезать», «Переименовать», «Удалить», «Права», «Создать папку», «Залить файл», «Скачать файл», «Выйти».</p>
<p style="text-align: justify;">Следом идет элемент в виде полосы, растянутый на всю ширину. В нем располагается отображаемый путь (местонахождение), в зависимости от того в каком каталоге вы находитесь. С помощью него можно свободно перемещаться и на несколько уровней выше, нажав на нужный каталог в данном пути.</p>
<p style="text-align: justify;">В центре интерфейса отображена таблица со списком имеющихся файлов/папок какого-либо каталога, в зависимости от местоположения. Данная таблица содержит в себе несколько столбцов:</p>
<ol style="margin-left: 53pt;">
<li>
<div style="text-align: justify;"><span>Имя – это наименование данного файла/папки.<br />
</span></div>
</li>
<li>
<div style="text-align: justify;"><span>Размер – указывается размер данного файла в КилоБайтах.<br />
</span></div>
</li>
<li>
<div style="text-align: justify;"><span>Дата &#8211; дата создания данного файла.<br />
</span></div>
</li>
<li>
<div style="text-align: justify;"><span>Время – время создания данного файла.<br />
</span></div>
</li>
<li>
<div style="text-align: justify;"><span>Права – буквенный вид прав доступа к данному файлу/папке.<br />
</span></div>
</li>
</ol>
<p style="text-align: justify;">Нижняя часть интерфейса состоит из мини-статистики и лога. Статистика отображает следующее: Количество папок и файлов в данном каталоге; Название FTP-сервера, к которому мы подключены; Имя текущего пользователя, присоединенному к данному FTP-серверу; Максимальный размер загружаемого файла. В логах отображены все наши какие-либо произошедшие операции и действия.</p>
<p style="text-align: justify;">Рассмотрим метод подключения функций к интерфейсу. Воспользуемся языком JavaScript, который содержит в себе AJAX технологию, для динамичной загрузки и обновления данных в интерфейсе FTP-менеджера.</p>
<p style="text-align: justify;">Рассмотрим функцию LIST(), которая будет отображать список содержимого того или иного каталога в таблице FTP-менеджера. Для начала, мы напишем функцию на языке JavaScript с использованием jQuery возможностей (Рисунок 7).</p>
<p><img class="aligncenter" src="https://technology.snauka.ru/wp-content/uploads/2015/02/020915_1819_FTP7.png" alt="" /></p>
<p style="text-align: center;"><span>Рисунок 7 – JavaScript-функция отображения списка содержимого<br />
</span></p>
<p style="text-align: justify;">В функции <em>ftp_list()</em> передается один параметр, который содержит в себе путь в строковом виде. Данный путь отправляется с помощью AJAX технологии скрипту <em>list.php </em>(Рисунок 8), который, в свою очередь, будет использовать написанный выше PHP класс и выполнять свои действия для успешного отображения содержимого того или иного каталога, в зависимости от того какой путь был им передан.</p>
<p style="text-align: justify;">Скрипт list.php:</p>
<p><img class="aligncenter" src="https://technology.snauka.ru/wp-content/uploads/2015/02/020915_1819_FTP8.png" alt="" /></p>
<p style="text-align: center;"><span>Рисунок 8 – Фрагмент кода list.php скрипта<br />
</span></p>
<p style="text-align: justify;">Данный скрипт подключается к нашему классу с помощью функции Connect() и при успешном соединении получает идентификатор соединения FTP-сервера, куда, в свою очередь, передает данный идентификатор следующей функции – LIST(), и заодно передает наш полученный путь, сгенерированный JavaScript функцией через AJAX технологию.</p>
<p style="text-align: justify;">При успешном выполнении команды LIST, получаем список содержимого, который в дальнейшем генерируется в HTML для отображения данного списка в таблице FTP-менеджера.</p>
<p style="text-align: justify;">Теперь необходимо подключить JavaScript функцию на сайте (Рисунок 9).</p>
<p style="text-align: center;"><img src="https://technology.snauka.ru/wp-content/uploads/2015/02/020915_1819_FTP9.png" alt="" /></p>
<p style="text-align: center;"><span>Рисунок 9 – Подключение JavaScript-функции для отображения списка содержимого<br />
</span></p>
<p style="text-align: justify;">Во время загрузки, страница автоматически ищет функции внутри тега &lt;script&gt;&lt;/script&gt;, и запускает их. В нашем случае, при загрузке страницы срабатывается функция ftp_list(), которая передает параметр $_SESSION["current_path"] – эта переменная содержит в себе путь. Если пользователь в первый раз заходит в FTP-менеджер, то по умолчанию присваивается путь &#8220;/&#8221;, то есть корневой каталог FTP-сервера. При посещении различных папок, соответственно, меняется и путь в данной переменной. Также эта функция привязана и к кнопке «Обновить», где при нажатии на данную кнопку произойдет обновление списка содержимого. Помимо этого, данная функция выполняется и после других различных операции, такие как, к примеру: копирование, перемещение, переименование и т.д.</p>
<p style="text-align: justify;">Таким образом, был разработан FTP-менеджер с web-интерфейсом, для доступа к которому необходим всего лишь выход в интернет.</p>
]]></content:encoded>
			<wfw:commentRss>https://technology.snauka.ru/2015/02/5747/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
