Разработка FTP-менеджера с помощью PHP

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 03.06.2016
Размер файла 498,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Приамурский государственный университет имени Шолом-Алейхема

РАЗРАБОТКА FTP-МЕНЕДЖЕРА С ПОМОЩЬЮ PHP

Якимов Антон Сергеевич,

Николаев Сергей Валерьевич,

Корнилков Алексей Петрович

Цель данной статьи продемонстрировать разработку собственного сетевого протокола прикладного уровня в виде FTP-менеджера, который обеспечит передачу файлов. Данная задача реализована с помощью языка программирования PHP.

Ключевые слова: интерфейс, менеджер FTP, сервер FTP

Одним из первых прикладных протоколов является протокол передачи файлов (FTP-File Transfer Protocol). Разработан он в 1971 году и применяется в виде доступа к файлам удаленных хостов. На основе протокола FTP, разрабатывается программное обеспечение (ПО) для доступа к FTP-серверу. FTP-сервер - это удаленный хост, который предоставляет доступ к своим ресурсам и к хранящемся на нем файлам. Такое ПО носит название FTP - менеджер. В зависимости от поставленных целей, FTP-менеджеры могут предоставлять файлы и ресурсы так, как будто они имеются на компьютере пользователя, либо просто выполняют свою роль в виде отправки команд пользователя и файлов.

Протокол FTP и его модель описана в книге Н. Дилипа «Стандарты и протоколы интернета» [1]. В лабораторном практикуме С.Л. Сурменко описаны команды FTP протокола, его функционирование и демонстрация FTP-менеджера [2]. Пример разработки FTP-менеджера в программной среде Delphi продемонстрировано в книге С.М. Парижского [3]. А.В.Иванов провел исследование безопасности протокола FTP [4]. Автоматическое управление на основе ftp-соединений в домене показал И.Коробко [5]. А.Луконькин рассмотрел работу с ftp-сервером из «1С:Предприятие» [6]. Р.И.Баженов, А.П.Корников применяли сетевые технологии в своих исследованиях [7, 8].

Рассмотрим разработку собственного FTP-менеджера, используя язык программирования PHP.

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

В созданном классе напишем функцию Connect() для соединения с FTP-сервером (Рисунок 1).

Рисунок 1 PHP-функция соединения с FTP-сервером

Функция Connect() содержит в себе 3 параметра: server, user и pass. В первый параметр передаем хост (или IP) FTP-сервера, во втором параметре передаем имя пользователя FTP-сервера, а в третьем - пароль данного пользователя.

При успешном соединении с хостом данного FTP-сервера, функция проверяет имя пользователя и пароля, отправляя FTP-серверу команду USER и PASS. Если аутентификация прошла успешно, то функция возвращает полученный идентификатор соединения данного FTP-сервера для последующего обращения различных команд к данному потоку FTP-сервера (Рисунок 2).

Рисунок 2 PHP-функции отправки FTP команд

Во всех случаях в функции обычно передаются 2 параметра. Первым параметром является идентификатор FTP-сервера, который мы получили после выполнения функции Connect(), а вторым параметров является дополнительные команды/запросы для выполнения тех или иных операции.

Например, в функции USER(), в первом параметре передается идентификатор FTP-сервера, а во втором параметре передается имя пользователя. Внутри каждой функции используется еще одна функция - ftp_raw(), эта функция отправляет различные произвольные команды FTP-серверу. Зная команды FTP-протокола, мы можем, в нашем примере, произвести аутентификацию имя пользователя с помощью команды вида «USER имя_пользователя».

Помимо выполнения и отправки различных FTP команд, мы также еще одновременно записываем всю информацию в лог с помощью функции Message() (Рисунок 3). Позже можно будет вызвать функцию Log() для дальнейшего отображения лога в окне веб-интерфейса и проследить все происходящие события (Рисунок 4). В случае успеха или неудачи, мы всегда можем посмотреть возвращаемые коды ответа и выяснить статус данных действии.

Функция Message():

Рисунок 3 PHP-функция записи лога

В первом параметре передается само сообщение, для которого нужно будет выводить в лог, а во втором параметре передается тип данного сообщения. В нашем случае существуют всего четыре типа: D (Default) - обычное оповещение в логе, C (Client) - оповещение со стороны клиента, S (Server) - оповещение со стороны сервера и E (Error) - оповещение с ошибкой или неудачах каких-либо операции. Эти сообщения обрабатываются, и задают HTML/CSS стиль данного текста в нужный цвет окраски, в зависимости от того какой это тип сообщения. D - по умолчанию (т.е. без цвета), C - синего цвета, S - зеленного цвета и E - красного цвета. Все сгенерированные и обработанные сообщения записываются в сессию $_SESSION["message"].

Функция Log():

Рисунок 4 PHP-функция вывода лога

Приступим к описанию интерфейса программы. Для создания интерфейса были использованы инструменты средств HTML и CSS. Первым делом создали окно авторизации, где в полях нужно ввести сервер, логин и пароль для соединения с FTP-сервером (Рисунок 5).

Рисунок 5 Окно авторизации

После успешной авторизации пользователь переходит в основное окно FTP-менеджера (Рисунок 6).

Рисунок 6 Главное окно FTP-менеджера

Рассмотрим более подробно это окно. В верхней части расположены кнопки, которые имеют свои определенные функции для взаимодействия с файлами/папками на FTP-сервере, такие как: «Обновить», «Копировать», «Вырезать», «Переименовать», «Удалить», «Права», «Создать папку», «Залить файл», «Скачать файл», «Выйти».

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

В центре интерфейса отображена таблица со списком имеющихся файлов/папок какого-либо каталога, в зависимости от местоположения. Данная таблица содержит в себе несколько столбцов:

1. Имя - это наименование данного файла/папки.

2. Размер - указывается размер данного файла в КилоБайтах.

3. Дата - дата создания данного файла.

4. Время - время создания данного файла.

5. Права - буквенный вид прав доступа к данному файлу/папке.

Нижняя часть интерфейса состоит из мини-статистики и лога. Статистика отображает следующее: Количество папок и файлов в данном каталоге; Название FTP-сервера, к которому мы подключены; Имя текущего пользователя, присоединенному к данному FTP-серверу; Максимальный размер загружаемого файла. В логах отображены все наши какие-либо произошедшие операции и действия.

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

Рассмотрим функцию LIST(), которая будет отображать список содержимого того или иного каталога в таблице FTP-менеджера. Для начала, мы напишем функцию на языке JavaScript с использованием jQuery возможностей (Рисунок 7).

Рисунок 7 JavaScript-функция отображения списка содержимого

В функции ftp_list() передается один параметр, который содержит в себе путь в строковом виде. Данный путь отправляется с помощью AJAX технологии скриптуlist.php (Рисунок 8), который, в свою очередь, будет использовать написанный выше PHP класс и выполнять свои действия для успешного отображения содержимого того или иного каталога, в зависимости от того какой путь был им передан.

Скрипт list.php:

протокол сетевой файл сервер

Рисунок 8 Фрагмент кода list.php скрипта

Данный скрипт подключается к нашему классу с помощью функции Connect() и при успешном соединении получает идентификатор соединения FTP-сервера, куда, в свою очередь, передает данный идентификатор следующей функции - LIST(), и заодно передает наш полученный путь, сгенерированный JavaScript функцией через AJAX технологию.

При успешном выполнении команды LIST, получаем список содержимого, который в дальнейшем генерируется в HTML для отображения данного списка в таблице FTP-менеджера.

Теперь необходимо подключить JavaScript функцию на сайте (Рисунок 9).

Рисунок 9 Подключение JavaScript-функции для отображения списка содержимого

Во время загрузки, страница автоматически ищет функции внутри тега <script></script>, и запускает их. В нашем случае, при загрузке страницы срабатывается функция ftp_list(), которая передает параметр $_SESSION["current_path"] - эта переменная содержит в себе путь. Если пользователь в первый раз заходит в FTP-менеджер, то по умолчанию присваивается путь "/", то есть корневой каталог FTP-сервера. При посещении различных папок, соответственно, меняется и путь в данной переменной. Также эта функция привязана и к кнопке «Обновить», где при нажатии на данную кнопку произойдет обновление списка содержимого. Помимо этого, данная функция выполняется и после других различных операции, такие как, к примеру: копирование, перемещение, переименование и т.д.

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

Библиографический список

1. Дилип Н. Стандарты и протоколы интернета. М.: Изд. Отдел «Русская редакция» ТОО «Channel Trading Ltd.», 1999. 384 с.

2. Сурменко С.Л. Лабораторный практикум по информационным сетям: учебное пособие. Биробиджан: ДВГСГА, 2005. 62 с.

3. Парижский С.М. Delphi. Учимся на примерах // Онлайн библиотека uhlib.ru URL:http://www.uhlib.ru/kompyutery_i_internet/delphi_uchimsja_na_primerah/p19.php

4. Иванов А.В. Исследование безопасности протокола FTP // Научно-технический вестник информационных технологий, механики и оптики. 2005. № 19. С. 167-171.

5. Коробко И. Автоматическое управление. ftp-соединениями в домене // Системный администратор. 2012. № 7-8 (116-117). С. 28-29.

6. Луконькин А. Работаем с ftp-сервером из «1С» // Системный администратор. 2009. № 5 (78). С. 70-71.

7. Белов И.В., Винокуров А.С., Баженов Р.И. Разработка программы удаленного управления компьютером на основе протокола telnet // Science Time. 2014. № 10 (10). С. 39-43.

8. Баженов Р.И., Корнилков А.П., Лопатин Д.К. Проектирование web-ориентированной информационной системы университета на основе клиент-серверных технологий // Актуальные проблемы гуманитарных и естественных наук. 2014. № 4-1. С. 68-71.

Размещено на Allbest.ru

...

Подобные документы

  • Разработка программного обеспечения, которое позволит автоматизировать работу менеджера с клиентами и поставщиками. Определение требований, тестирование, описание программы. Руководство системного программиста. Создание СУБД в DELPHI для менеджера.

    дипломная работа [775,0 K], добавлен 16.06.2014

  • Характеристика Javascript функции с параметрами (аргументами). Возврат значений, глобальные и локальные переменные в функции. Все способы создания пользовательских функций в Javascript. Область видимости переменных. Рекурсивная функция Javascript.

    лабораторная работа [75,8 K], добавлен 19.09.2019

  • Функция протокола и структура пакета разрабатываемого протокола. Длина полей заголовка. Расчет длины буфера на приеме в зависимости от длины пакета и допустимой задержки. Алгоритмы обработки данных на приеме и передаче. Программная реализация протокола.

    курсовая работа [1,0 M], добавлен 18.05.2014

  • Сравнительная характеристика, возможности и функции языков программирования JavaScript и PHP. Основные области их использования. Разработка интерактивного Web-приложения с применением JavaScript на примере теста по теме "Программирование на языке Delphi".

    курсовая работа [19,3 K], добавлен 01.07.2014

  • Описания сетевых протоколов прикладного уровня, позволяющих производить удалённое управление операционной системой. Основные характеристики протокола CMIP. Изучение особенностей Telnet, сетевого протокола для реализации текстового интерфейса по сети.

    реферат [47,0 K], добавлен 24.01.2014

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

    курсовая работа [1,1 M], добавлен 02.02.2014

  • Общие характеристики операционной системы Android. Разработка приложения на основе создания менеджера файлов. Получение с помощью приложения доступа к файлам, хранящимся в "облачном хранилище" в сети Интернет. Расчет стоимости программного обеспечения.

    дипломная работа [2,7 M], добавлен 03.04.2015

  • Принцип организации и способы удаленного обмена файлами с использованием протокола. Разработка проекта распространения софта на множество пользовательских машин. Создание программного комплекса системы с механизмами отображения и управления данными.

    дипломная работа [920,0 K], добавлен 03.04.2014

  • Системные вызовы и библиотечные функции. Требования к программе и программному изделию. Функция отображения списка имен файлов правой панели, удаления, перемещения и переименования, выдачи сообщения об ошибках. Порядок создания собственных библиотек.

    курсовая работа [935,4 K], добавлен 09.08.2012

  • Создание информационной системы менеджера по работе с клиентами: разработка схемы потоков информации, концептуальной, датологической моделей базы данных, форм пользовательского интерфейса, основных невизуальных компонент, выполнение блок-схемы программы.

    курсовая работа [2,4 M], добавлен 14.03.2010

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

    курсовая работа [686,9 K], добавлен 19.05.2014

  • Разработка системы, автоматизирующей рабочее место менеджера кадрового агентства "Job" на основе программного обеспечения Drupal с использованием веб-технологий, упрощающей процесс поиска сотрудников на вакансии, предоставленные клиентами агентства.

    курсовая работа [1,1 M], добавлен 08.11.2012

  • Разработка исходного XML-документа, который будет содержать данные варианта. Разработка таблицы стилей XSLT для преобразования исходного XML-документа исходного XML-документ с заданной структурой. Анализ базового класса, содержащего виртуальные методы.

    курсовая работа [1,3 M], добавлен 01.05.2019

  • Разработка информационной системы "Офис" с применением технологий JavaScript, Servletа, CSS (каскадные таблицы стилей ) и Hibernate. Логическая и физесчкая схема базы данных. Создание веб-интерфейса, который обеспечивает работу с сервер-приложением.

    курсовая работа [770,6 K], добавлен 31.05.2015

  • Понятия шаблонов функции и класса, правила описания на языке С++. Разработка и отлаживание в среде программирования программ, содержащих шаблоны функций и классов. Шаблон функции square, возвращающей квадрат переменной. Создание шаблона класса массива.

    лабораторная работа [162,6 K], добавлен 25.05.2013

  • Определение общих требований к организации автоматизированного рабочего места. Создание модели автоматизированного рабочего места менеджера фирмы "Информстиль". Разработка базы данных и описание алгоритма программы по учету продаж вычислительной техники.

    дипломная работа [2,9 M], добавлен 03.07.2015

  • Разработка API взаимодействия клиентских приложений с сервером СУБД через Pipe под Windows. Устройство и характеристики СУБД SQLite. Методы WinAPI для передачи данных. Реализация взаимодействия через PIPE. Результат работы серверного приложения.

    курсовая работа [596,3 K], добавлен 09.05.2014

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

    лабораторная работа [605,9 K], добавлен 25.05.2016

  • Стандартные функции для работы с динамической памятью. Представление списков цепочками звеньев. Организация файлового каталога в файловой системе в виде линейного списка на языке Visual C++. Создание блок-схемы и инструкции по работе с программой.

    курсовая работа [252,0 K], добавлен 22.01.2015

  • Разработка графического интерфейса для ввода начальных значений, отображения результатов и тестирования методов собственного класса на языке программирования С++. Подсветка цветом выбранных операндов в процессе их инициализации и вывода на дисплей.

    курсовая работа [234,6 K], добавлен 27.12.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.