Скрипт скачивания различных документов с сервера. Путеводитель по бесплатным FTP-клиентам

Как найти и скачать в Интернете любые файлы Райтман М. А.

Этот раздел - своего рода продолжение темы, начатой в предыдущей главе. В ней вы познакомились с азами поиска файловых архивов, также называемыми FTP-серверами. Найти-то вы нашли, а вот загружать с них файлы не научились. Нет, конечно средствами браузера вы умеете - щелкнул правой кнопкой мыши, выбрал команду Сохранить объект как (Save item as), выбрал каталог, нажал кнопку Сохранить (Save) и жди, пока докачается. Это, конечно, хорошо и вполне правильно, но как-то уж… А что, если вы скачиваете не графический файл размером в 500 Кбайт, а весомый образ DVD-диска с дистрибутивом операционной системы Linux весом более 4 Гбайт? Осмелюсь предположить, что вы "сидите" не на "толстом канале" с пропускной способностью 100 Мбит/с, и загружать такой файл ваш компьютер планирует несколько часов (дней, месяцев, лет…). Все хорошо, если по закону Мерфи (именно тогда, когда до окончания закачки оставался 1 %, отключили электричество) закачка не прервется. Но лучше, думаю, не трястись и не переживать, а доверить дело или менеджеру закачек, или же FTP-клиенту. По крайней мере, они всегда смогут продолжить загрузку с позиции остановки. Да и листать каталоги файловых архивов в них удобнее, чем в браузере. Что еще? Да хотя бы то, что эти утилиты позволяют ставить файлы для загрузки в очередь и даже параллельно загружать несколько объектов.

Первым делом, я познакомлю вас с возможностями по работе с FTP в программе Download Master. По большому счету, его возможностей с лихвой хватает, чтобы просмотреть содержимое файлового архива, выбрать и загрузить оттуда несколько файлов.

В главном окне программы Download Master нажмите клавишу или щелкните мышью на кнопке FTP Explorer , расположенной на панели задач. Также вы можете выбрать команду меню Инструменты | FTP Explorer . В любом случае откроется окно инструмента FTP Explorer.

Интерфейс инструмента FTP Explorer напоминает главное окно программы Download Master. Под строкой меню расположена панель задач с элементами управления, позволяющими подключить к серверу и прервать соединение, закачать файл, отфильтровать содержимое файловых архивов и произвести настройки подключения к FTP, а также закрыть окно инструмента. Ниже находится поле ввода адреса FTP-сервера и кнопки Открыть и Логин справа. Кнопка Открыть позволяет выполнить подключение к серверу, а после нажатия кнопки Логин появится диалоговое окно, предназначенное для ввода логина авторизации и пароля пользователя, если того требует сервер (рис. 3.28).

Введите в длинное поле ввода URL адрес FTP-сервера и нажмите кнопку Логин . В качестве примера я использую адрес веб-сайта/файлового архива, посвященного аниме и описанного в предыдущей главе. Если подключение прошло успешно, откроется содержимое файлового архива (рис. 3.29).

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

СОВЕТ.

Кстати, информация о состоянии подключения может подсказать вам решение проблемы, если соединиться с сервером не удается по каким-то причинам. Например, вы можете увидеть в этой области сообщение вида "User banned", обозначающее, что ваш IP-адрес за какие проступки "забанили" (запретили или ограничили подключение на ограниченный срок или навсегда). В этом случае вы знаете что делать: с приемами смены IP-адреса я познакомил вас в главе 1.

Для начала загрузки следует дважды щелкнуть мышью на нужном файле в правой части окна инструмента FTP Explorer. Кроме того, вы можете щелкнуть на файле правой кнопкой мыши и выбрать пункт Закачать из контекстного меню, нажать кнопку Закачать на панели задач или же выбрать команду меню Файл | Закачать . В любом случае вы увидите уже знакомое вам диалоговое окно Добавить закачку . Далее последовательность действий та же, что и при загрузке файла по протоколу HTTP. Следует учитывать ограничения, которые практикуются на FTP-серверах, к примеру, загрузка только одного файла одновременно. В этом случае, определение свойств подключения к файловому архиву определяется точно таким же образом, что и при загрузке по протоколу HTTP, с помощью инструмента Менеджер сайтов .

Кроме того, для скачивания желаемых файлов с FTP-сервера можно воспользоваться и специальной клиентской программой, например FileZilla. Дистрибутив этой программы вы можете загрузить с сайта http://filezilla.ru/ .

Устанавливается программа просто. Для этого следует дважды щелкнуть мышью на загруженном файле, принять лицензионное соглашение и несколько раз нажать кнопку Далее (Next). Возможно, программа установки попросит вас указать папку, в которую следует установить приложение. Все дело в том, что это очень маленькая программа, всего около 10 Мбайт, и по утверждению разработчиков может работать даже с флэш-диска. Для выбора места установки следует нажать кнопку Обзор (Browse) правее поля ввода пути установки и выбрать путь инсталляции. После установки для запуска программы следует нажать кнопку Пуск (Start) на панели задач, выбрать из появившегося главного меню пункт Все программы (All Programs). Далее выбрать папку FileZilla FTP Client , а затем команду FileZilla . После запуска вы увидите на экране окно выбранной вами программы. На рис. 3.30 представлено окно программы в процессе работы, с активным подключением к FTP-серверу.

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

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

Под панелью инструментов расположена адресная строка с полем ввода адреса запрашиваемого ресурса Хост (Host), полем ввода Имя пользователя (User name), полем ввода пароля Пароль (Password) и полем ввода Порт (Port) для ввода адреса портов.

По умолчанию окно программы разделено на несколько областей. Так, в верхней области Журнал сообщений (Messages log) вы увидите все переговоры вашего компьютера с удаленным сервером. Чтобы скрыть данную область, достаточно нажать в панели инструментов кнопку:

Ниже вы увидите две горизонтально разделенных области Локальный сайт (Local site) и Удаленный сайт (Remove site). Верхняя область слева показывает локальное дерево каталогов вашего компьютера, а верхняя область справа - дерево каталогов удаленного ресурса. Нажав кнопку вы скроете дерево каталогов вашего компьютера. В этом дереве каталогов показаны все присоединенные к вашему компьютеру устройства. Чтобы скрыть дерево каталогов удаленного сайта, нажмите кнопку:

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

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

Для подключения к FTP-серверу следует ввести адрес ресурса в поле ввода Хост (Host). Для доступа к закрытым серверам также понадобится ввести логин и пароль. Управлять FTP-серверами удобно в окне Менеджера сайтов, этакого инструмента Избранное.

1. На панели инструментов программы нажмите кнопку:

На экране появится диалоговое окно Менеджер Сайтов (Site Manager) (рис. 3.31).

2. Чтобы добавить новый FTP-сервер, нажмите кнопку Новый Сайт (New Site). В дереве каталогов, в окне Select Entry (Выберите запись) в левой части диалогового окна, появится новый значок с надписью Новый сайт (New Site). Это название сайта для внутреннего пользования. Здесь следует ввести с клавиатуры то название, которым вы желаете назвать этот FTP-сервер. Затем по этому названию вы будете выбирать этот сайт для открытия. После, на вкладке Общие (General) в правой части диалогового окна, в поле ввода Хост (Host) следует ввести имя открываемого ресурса. Далее, из открывающегося списка Тип сервера (Servertype) выберите тип подключения - FTP - File Transfer Protocol . Тип входа будет зависеть от настроек на FTP-сервере. В ряде случаев доступ осуществляется по логину и паролю, который вы можете получить у администратора сервера. Если у вас есть свой логин и пароль, из раскрывающегося списка Тип входа (Logon type) выберите строку Нормальный (Normal). Если же логина и пароля у вас нет, выберите пункт Анонимный (Anonymous). В этом случае в полях ввода имени пользователя и пароля будут введены данные по умолчанию.

3. После того как требуемые данные вы введете, нажмите кнопку OK. Диалоговое окно Менеджер сайтов (Site Manager) закроется. Теперь, чтобы соединиться с желаемым FTP-сервером, достаточно нажать правую часть кнопки и выбрать из сформированного вами списка серверов желаемый узел. После автоматического соединения, в левой части окна программы FileZilla, в области Удаленный сайт (Remove site), появится дерево каталогов выбранного сайта. Но вы можете увидеть и только одну папку со значком + левее этой папки. Чтобы раскрыть содержимое каталога, щелкните мышью на значке +. Вы увидите содержимое этого каталога. Таким образом, вы можете перемещаться по подпапкам, просматривая их содержимое.

Чтобы скопировать определенный файл к себе на компьютер, вам следует сначала выбрать папку, в которой будет сохранен скачанный файл. Для этого в области Локальный сайт (Local site) в левой части окна программы выберите папку сохранения. В нижнем окне в левой части окна программы вы увидите содержимое выбранной папки. Теперь копирование файла - дело техники.

1. В нижнем окне области Удаленный сайт (Remove site), в правой части окна программы, установите указатель мыши на копируемом файле.

2. Нажмите и не отпускайте левую кнопку мыши.

3. Перетащите выбранный файл в нижнее окно области Локальный сайт (Local site) в левой части программы, после чего отпустите левую кнопку мыши. Начнется копирование выбранного файла. Процесс копирования файла вы увидите в нижней части окна программы.

4. Есть и другой способ скачивания файлов.

5. Щелкните правой кнопкой мыши на закачиваемом объекте в правой части окна программы, в области Удаленный сайт (Remove site). На экране появится контекстное меню.

6. Выберите команду Скачать (Download). Начнется процесс копирования выбранной папки или файла. Причем копироваться папка с вложенными файлами или выбранный файл будет в каталог, выбранный в области Локальный сайт (Local site).

Чтобы корректно завершить работу на удаленном FTP-сервере, нажмите в панели инструментов программы кнопку Отключиться от просматриваемого сервера (Disconnects from the currently visible server):

После этого работу программы можно завершить.

В заключение следует сказать, что данная программа позволяет выкачивать из Интернета файлы большого объема. И не страшно, если в самый интересный момент не выдержит нагрузки питающая ваш дом электросеть и в доме пропадет электричество. После включения электропитания программа докачает файл, причем закачка в большинстве случаев возобновится с прерванного места.

Из книги Компьютер на 100. Начинаем с Windows Vista автора Зозуля Юрий

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

Из книги Работа в Интернете автора Макарский Дмитрий

Глава 2 Загрузка файлов из Интернета Загрузка файлов с помощью браузераМенеджеры закачекЗагрузка и выгрузка файлов посредством FTPФайлообменные сетиМультимедийные файлыАрхивыДокументыПользователь, хотя бы немного знакомый с Интернетом, наверняка знает, что

Из книги Windows Vista без напряга автора Жвалевский Андрей Валентинович

Загрузка файлов с помощью браузера Кроме тех основных и дополнительных возможностей, о которых говорилось в предыдущей главе, браузеры способны делать и еще некоторые полезные вещи, в частности загружать из Интернета файлы. Однако загрузка файлов из ети с помощью

Из книги Windows Vista автора Вавилов Сергей

Загрузка и выгрузка файлов посредством FTP Поговорим о том, как можно выгрузить свои файлы на удаленный сервер Интернета, чтобы их потом могли загружать другие, а также рассмотрим еще один способ загрузки файлов на свой компьютер, не связанный с использованием браузеров и

Из книги Популярный самоучитель работы в Интернете автора Кондратьев Геннадий Геннадьевич

Загрузка файлов из Интернета В Интернете можно найти не только информацию по любому интересующему вас вопросу, но также скачать (скопировать на жесткий диск компьютера) файлы любых типов – программы, музыку, видео, текстовые документы (рефераты, курсовые) и многое

Из книги Как найти и скачать в Интернете любые файлы автора Райтман М. А.

Загрузка файлов из Интернета В Интернете можно не только найти информацию по любому интересующему вас вопросу, но и скачать файлы разных типов – программы, музыку, видео, текстовые документы (рефераты, курсовые) и многое другое. Этому вопросу посвящен видеоролик «Урок 4.8.

Из книги Macromedia Flash Professional 8. Графика и анимация автора Дронов В. А.

Из книги Работа в Интернете. Энциклопедия автора Ташков Петр Андреевич

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

Из книги Как сделать свой сайт и заработать на нем. Практическое пособие для начинающих по заработку в Интернете автора Мухутдинов Евгений

Открытие и загрузка файлов по magnet-ссылкам Но программа DC++ имеет еще одно неоспоримое преимущество: вы можете переслать свой файл конкретному пользователю. Вернее, предоставить возможность скачать вашему знакомому нужный ему в данный момент файл. Согласитесь, крайне

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

Загрузка внешних файлов Ранее в этой главе уже упоминалось о том, что язык ActionScript позволяет загрузить и поместить в фильм Flash внешний файл. Этим внешним файлом может быть другой фильм Shockwave/Flash, изображение в формате JPEG, видео Macromedia Flash Video или звук. Также имеется возможность

Из книги Windows 10. Секреты и устройство автора Алмаметов Владимир

Глава 6 Загрузка файлов из Интернета Загрузка файлов с помощью браузера Менеджеры закачек Загрузка и скачивание файлов посредством FTP Файлообменные сетиПользователь, хотя бы немного знакомый с Интернетом, наверняка знает, что содержимое Сети не ограничивается

Из книги автора

Загрузка файлов с помощью браузера Кроме тех основных и дополнительных возможностей, о которых говорилось ранее, браузеры способны делать и еще некоторые полезные вещи, в частности загружать из Интернета файлы. Однако загрузка файлов из Сети с помощью браузера по

Из книги автора

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

Из книги автора

Из книги автора

19.12. Загрузка файлов, которые состоят не только из функций Загружаемый файл не обязательно должен содержать только функции; он может включать глобальные переменные, образующие файл конфигурации.Предположим, что существует пара сценариев резервирования, которые

Многие из нас порой пользуются протоколом FTP, например, я даже на своём компьютере. Скачать файл по этом протоколу не так сложно через браузер, но вот папку вы не скачаете таким образом.

Можно конечно всё вытягивать по одному файлу, но это не выход, файлов может быть очень много. Но на самом деле это не проблема и тут есть несколько вариантов, ?

1. Как с FTP скачать папку при помощи FileZilla?

Первый и самый простой способ - это установить ftp клиент, например, программу Filezilla. Установить её можно командой в терминале:

Sudo apt-get install filezilla

Работать с этой программой совсем просто, поэтому не буду долго объяснять. Скажу только, что нужно ввести адрес ftp сервера в поле "хост" и нажать "enter"

2. Как с FTP скачать папку при помощи Nautilus?

Но, например, я столкнулся с проблемой, что некоторые ftp сервера в нашей локальной сети совсем не хотят соединяться с filezilla. Поэтому бывает нужно пойти другим путём: зайти на ftp через файловый менеджер nautilus. Делается это просто: открываете любое окно наутилуса и нажимаете Ctrl + L После этого в нём появляется адресная строка. Вводим туда адрес ресурса ftp: ftp://172.22.16.133 (вы вводите естественно ваш адрес) В окне должны появиться папки и файлы ресурса. Но тут сразу возникает проблема: nautilus совсем отказывается понимать русскую кодировку в cp1251, появляются крякозябры.

Как открыть папку ftp в nautilus, чтобы кодировка была нормальной, то есть uft8? Думаю просто открыть таким способом у нас не получиться, так как в nautilus нет таких настроек. (Может и есть какие-нибудь хитрые способы, но я о них не слышал). Но есть другой способ решить эту проблему: можно просто подмонтировать ресурс ftp к какой-нибудь нашей папке. Для этого нам понадобится небольшая консольная програмулька - curlftpfs. Устанавливаем:

Sudo apt-get install curlftpfs

После этого создаём где-нибудь папку, например с названием FTP.

Что бы воспользоваться программай нужно в консоли ввести команду:

Fusermount -u /home/user/FTP

Но в данном случае вы опять получите крякозябры. Поэтому нужно ввести специальный параметр, которые будет на лету перекодировать кракозябры в удобоваримый вид:

curlftpfs 172.22.16.133/audio /home/user/FTP -o codepage=windows-1251[,iocharset=utf8]

Опа! Получилось!

Параметр -o codepage=windows-1251[,iocharset=utf8] как раз и даёт возможность перекодировать виндозную кодировку в нашу utf8.

Теперь вы можете скачать папку с ftp без особых проблем, или просто полазить на сервере, ища то, что вам нужно.

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

Информация для подключения

Управление FTP-аккаунтами производится в разделе FTP и SSH . Для перехода к настройкам FTP-пользователя необходимо нажать на его название.

На странице Свойства указаны основные параметры для подключения к серверу по FTP.

  • Адрес сервера (хост): ftp.login.nichost.ru, где login - уникальное имя услуги хостинга (указано в верхней правой части панели управления).
  • Имя FTP-пользователя (логин): login_ftp .
  • Для смены пароля FTP-пользователя нажмите кнопку Сбросить пароль . Новый пароль будет отображен в всплывающем окне. Для отправки пароля на ваш контактный адрес электронной почты, установите галочку Выслать пароль на почту .

Загрузка файлов на сервер

После создания сайта в разделе Сайты панели управления на хостинге появится каталог с его именем. Загружать файлы необходимо в корневой каталог сайта ваш_домен/docs . Сделать это можно при помощи одной из указанных ниже программ или панели управления хостингом.

Настройка программ

Информация о настройке популярных FTP-клиентов (FileZilla, FAR, Total Commander, iWeb и др.) размещена в статье .

Структура каталогов хостинга

При подключении к хостингу по FTP вы попадаете в домашний каталог. Он содержит следующие файлы и каталоги:

  • каталоги с именами сайтов (на примере login.nichost.ru ) - появляются при создании сайта в панели управления,
  • etc - содержит конфигурационные файлы хостинга,
  • tmp - для временных файлов, в него загружаются резервные копии,

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

  • ваш_домен/docs - корневой каталог сайта. В него следует загружать файлы сайта (html-документы, php-скрипты, картинки). Полный путь к корневому каталогу сайта на сервере: /home/идентификатор/ваш_домен/docs;
  • ваш_домен/cgi - для cgi-скриптов, его содержимое доступно по адресу http://ваш_домен /cgi-bin/;
  • ваш_домен/php - для подключаемых php-модулей, путь к нему задан параметром include_path ;
  • ваш_домен/errordocs - содержит стандартные страницы ошибок;

Будьте внимательны при работе с файлами. Не удаляйте служебные файлы и каталоги - это может нарушить работу хостинга.

FTP-пользователю можно предоставить доступ только к определенному каталогу хостинга, например, к файлам одного сайта. Для этого:

  • авторизуйтесь в панели управления хостингом, используя номер вашего договора и пароль;
  • перейдите в раздел FTP и SSH , где вы увидите имена пользователей FTP;
  • выберите необходимого пользователя, отредактируйте поле Доступ , нажмите ссылку Изменить и сохраните изменения.

Например, чтобы FTP-пользователь имел доступ к файлам сайта example.com, в поле Доступ введите /home/login /example.com/docs , где login - идентификатор услуги хостинга, docs - корневой каталог сайта.

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

Ограничения при работе по FTP

  • Не более 10 одновременных соединений с одного IP-адреса и не более 5 одновременных подключений от одного FTP-пользователя.
  • Подключение возможно только с использованием FTP-пользователей, созданных в панели управления. Анонимный доступ не предоставляется.

Об использовании SFTP

SFTP (SSH File Transfer Protocol) - протокол, позволяющий передавать файлы с использованием шифрования. Соединение по SFTP является более безопасным и обладает дополнительной функциональностью (работа с символическими ссылками).

Диагностики неполадок и устранение ошибок при работе с FTP

При возникновении ошибок подключения по FTP рекомендуем выполнить следующие действия.

1. Получите актуальные параметры подключения к хостингу

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

2. Проверьте настройки FTP-клиента и операционной системы

  • Убедитесь, что ваш FTP-клиент настроен согласно нашим инструкциям. Мы рекомендуем использовать для подключения FTP-клиент и пассивный режим работы.
  • Проверьте настройки антивирусного ПО, брандмауэра, установленных на вашем компьютере, и сетевого оборудования (например, роутера). FTP-клиенту должен быть разрешен доступ к сети.

3. Проверьте сетевое соединение

При возникновении технических неполадок на канале связи от вашего интернет-провайдера до сервера хостинга могут возникать ошибки подключения или наблюдаться низкая скорость передачи данных. Необходимо выполнить диагностику с .

В случае, если неполадки при подключении сохраняются, сообщите об этом в . В письме укажите текст сообщения об ошибке, её скриншот, результат проверки сетевого соединения с помощью WinMTR и время возникновения неполадок.

Недавно, для одного интернет-магазина на базе joomla-virtuemart , сделал скрипт, позволяющий на основе информации о товарах в базе данных генерировать каталоги товаров в виде XML документа с соблюдением формата Yandex Market Language (YML-формат каталога). Скрипт генерирует такие каталоги и сохраняет в файловой системе сайта. Но, клиент очень скоро пожаловался, что неудобно скачивать каталоги с сайта. И правда, при прямом обращении к каталогу, он просто открывается в браузере и чтобы его скачать нужно дополнительно нажать правой кнопкой мыши и кликнуть «сохранить как…».

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

, $_GET [ "file" ] ) and file_exists ($_GET [ "file" ] ) ) { $content = file_get_contents ($_GET [ "file" ] ) ; header ("Content-Type: " . $ctype . "; charset=utf-8" ) ; header (. $_GET [ "file" ] ) ; ob_end_clean () ; ob_start () ; echo $content ; ob_end_flush () ; exit () ; } else { echo "Файл не найден." ; exit () ; }

Принцип работы этого скрипта довольно прост. Допустим, скрипт записан в php файл с именем «download.php» и помещен в папку «files». Формируется ссылка на этот скрипт, в которой передается GET параметр file и в этом параметре передается имя требуемого текстового документа. Например, мы хотим скачать текстовый файл с именем test.xml или test.txt:

Http://www.domen-saita.ru/files/download.php?file=test.xml или http://www.domen-saita.ru/files/download.php?file=test.txt

При этом, если файл найден в файловой системе, в браузере всплывает диалоговое окно сохранения документа на компьютер.

Безопасность

Однако, в такой организации скачивания документов с сервера таится одна серьезная опасность. Если я введу в адресной строке браузера такой запрос:

Http://www.domen-saita.ru/files/download.php?file=../configuration.php

в таком случае начнется то, чего ни в коем случае допускать нельзя! Начнется скачивание файла конфигурации Вашего сайта (в данном случае имеется ввиду файл конфигурации joomla, однако это в равной степени касается всех CMS). А это автоматически означает полный крах, потому что в таком случае в руки пользователю попадает вся жизненно важная информация связанная с работоспособностью сайта. И вопрос взлома – это уже вопрос ближайшего времени. Поэтому, чтобы предотвратить такую возможность, мы должны позаботиться о безопасности. Именно для этого в первой строке скрипта полученный запрос проходит проверку регулярным выражением.

preg_match ("/^Catalog{0,50}\.xml$/" , $_GET [ "file" ] )

В данном случае, регулярное выражение допускает возможность скачивания только документа, имя которого может быть следующим:

Catalog.xml Catalog_krovati.xml Catalog_shkafy_i_tumby.xml

и тому подобное… То есть имя файла, в данном случае, должно начинаться с «Catalog» и заканчиваться на «.xml», с учетом регистра - любые другие вариации будут отклонены и на экран будет выведено сообщение «файл не найден». Хотя, физически он может находиться на сервере, но его скачивать не разрешено.

Причем, так же в этом регулярном выражении нет возможностьи пропустить символ «/» и «.» (кроме точки в окончании имени файла). Это предотвращает возможность в качестве имени файла указать путь до файла в другой папке, аналогично примеру с «configuration.php», или например:

Http://www.domen-saita.ru/files/download.php?file=../drugaya-papka/test.xml

То есть, данный скрипт позволит скачивать xml файлы только из той папки, в которой находится сам скрипт.

Однако, Вы можете изменить структуру регулярного выражения так, чтобы допустить скачивание любых «txt», «xml», «pdf», а так же любых графических файлов типа «png», «gif» и прочее… В общем, тут Вы можете полностью сами решать какие файлы можно скачивать с помощью этого скрипта. Главное ни в коем случае не допускайте через этот скрипт скачивание системных файлов вашего сайта, которые могут нести какие-то важные настройки, логины и пароли. Если с помощью этого скрипта захотите организовать скачивание из разных директорий файловой системы, то подумайте о том чтобы не было возможности скачивать из папки типа «administrator» или «admin», или из папок, которые содержат файлы расширений CMS, в том числе их файлы конфигурации.

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

Во второй строке скрипта запрашивается содержимое целевого файла и помещается в переменную.

Далее передаются заголовки, в первом заголовке определяется тип данных и кодировка, а во втором заголовке передается требование вывести диалог сохранения документа на компьютер до вывода его в окне браузера.

Далее предварительно опустошается (на всякий случай) и разрушается буфер. Затем запускается буферизация и все что выводится из переменной $content помещается в буфер, после чего выводится оттуда для скачивания.

Алтернативный код

Здесь представлен код того же скрипта, но чтение и дальнейшее скачивание файла с сервера происходит через функцию readfile(), что согласно документации php точно не должно вызвать проблем с переполнением памяти. На всякий случай, перед вызовом этой функции происходит очищение буфера с помощью ob_clean().

if (isset ($_GET [ "file" ] ) and preg_match ("/^Catalog{0,50}\.xml$/" , $_GET [ "file" ] ) and file_exists ($_GET [ "file" ] ) ) { header ("Content-Type: " . $ctype . "; charset=utf-8" ) ; header ("Content-Disposition: attachment; filename="

Однако, я не хочу сказать что скрипт указанный в первой части статьи хуже, просто для него я не могу сказать как он поведет себя при скачивании файлов большого размера. В случае же второго варианта, со слов самих разработчиков php – таких проблем точно не возникнет.

Дополнительное улучшение

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

if (isset ($_GET [ "file" ] ) and preg_match ("/^{0,50}\.(xml|txt|pdf|png|gif|jpg|jpeg|exe|doc|xls|ppt|zip|)$/" , $_GET [ "file" ] ) and file_exists ($_GET [ "file" ] ) ) { $extension = strtolower (substr (strrchr ($_GET [ "file" ] , "." ) , 1 ) ) ; switch ($extension ) { case "txt" : $ctype = "text/plain" ; break ; case "pdf" : $ctype = "application/pdf" ; break ; case "exe" : $ctype = "application/octet-stream" ; break ; case "zip" : $ctype = "application/zip" ; break ; case "doc" : $ctype = "application/msword" ; break ; case "xls" : $ctype = "application/vnd.ms-excel" ; break ; case "ppt" : $ctype = "application/vnd.ms-powerpoint" ; break ; case "gif" : $ctype = "image/gif" ; break ; case "png" : $ctype = "image/png" ; break ; case "jpeg" : $ctype = "image/jpg" ; break ; case "jpg" : $ctype = "image/jpg" ; break ; default : $ctype = "application/force-download" ; } header ("Content-Type: " . $ctype . "; charset=utf-8" ) ; header ("Content-Disposition: attachment; filename=" . $_GET [ "file" ] ) ; ob_clean () ; readfile ($_GET [ "file" ] ) ; exit () ; } else { echo "Файл не найден." ; exit () ; }

Кроме того, при желании, можно скрипт доработать таким образом чтобы ограничить количество скачиваний конкретного файла для одного пользователя. При этом прямой доступ к файлам перекрыть настройками сервера (например, через.htaccess на apache).

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

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

FileZilla

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

Графическая оболочка действительно удобна - она не перегружена, как это обычно бывает в программах подобного рода - множеством панелей. Сверху и снизу окна - Журнал сообщений и Окно задания, в основной части расположен двухколоночный файловый менеджер. Если менеджер покажется неудобным в навигации, можно включить древовидный список для локального/удаленного списков файлов. Поддерживаются вкладки. Такой интерфейс можно назвать почти классическим для GUI FTP-клиентов.

Для быстрого подключения к хосту можно воспользоваться Панелью быстрого соединения, также здесь указывается протокол передачи, например, sftp://hostname или ftps://hostname. Но более привычно составить список нужных источников для подключения в Менеджере сайтов. В настройках, опять же, можно поменять протокол (FTP/SFTP), ввести учетные данные, назначить локальный и удаленный каталоги, открывающиеся при подключении, сменить тип передачи файлов (более широко опции предоставлены в общих настройках программы). В Менеджере сайтов, равно как и в главном окне, в процессе навигации можно создавать закладки.

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

Поддерживаются HTTP/1.1, SOCKS 5, и FTP-прокси. Для протокола FTP дополнительно доступно шифрование.

Резюме

Простой клиент, который не удовлетворит потребности профессионала, однако включает в себя все базовые возможности для работы с протоколами FTP, SFTP, FTPS.

[+] Документация на русском языке
[+] Простой и удобный интерфейс
[+] Кроссплатформенность
[−] Нет поддержки командной строки ( сервера)

FTPRush

FTPRush - некогда платный клиент, пополнивший список бесплатных относительно недавно. Из примечательных особенностей можно отметить такую функцию, как FXP - перенос файлов с одного сайта на другой «на лету», гибкую настройку интерфейса (в традициях панельного MS Office 2000-2003), SSL/TLS/SFTP-шифрование, Z-компрессию при передаче.

Внешний вид настраивается гибче, чем FileZilla, достаточно заглянуть в меню «Вид» либо открыть контекстное меню любой из областей. Предусмотрено следующее: перетягивание, включение и отключение панелей, кнопок, настройка столбцов колонок.

Менеджер подключений имеет в запасе множество настроек сервера, поддерживаются SFTP (причем в соответствующем разделе обнаруживаются опции для настройки SSL), SSH, незащищенный FTP, TFTP. Можно указать временную зону, определить локальный/удаленный каталоги, добавить закладки. При наличии нескольких конфигураций удобно применять глобальные настройки, отпадает необходимость в перенастраивании нескольких конфигураций. Доступны списки исключений, извещения, приоритеты и другие дополнительные параметры. Представлен ряд опций, относящихся к соединению программы с сервером и передаче файлов. На выбор - несколько видов прокси, в том числе и SOCKS, настройка Z-компрессии. Не говоря уже о настройке горячих клавиш и действий мышью.

Планировщик доступен он через Окно задач. Не сказать, что он идеален в текущей реализации, но свои функции выполняет и вдобавок позволяет указать сценарий либо действие из списка для выполнения. Для создания сценариев используется конструктор, который доступен в меню «Инструменты». Также в этом разделе можно ознакомиться со списком FTP-команд. Удаленный поиск можно найти в разделе меню «FTP».

Пожалуй, единственный момент, вызывающий нарекание - очень некачественный перевод на русский.

Резюме

На выходе получаем бесплатный продукт с функциями профессионального продукта.

[−] Некачественный перевод интерфейса
[+] Отличная функциональность
[+] Большое количество настроек
[+] Поддержка защищенных протоколов и методов шифрования

WinSCP

WinSCP - клиент с открытым исходным кодом, который работает с протоколами FTP, SFTP, SCP и FTPS ( , таблица сравнения протоколов), поддерживает сценарии и командную строку.

Одна из первоочередных особенностей - возможность выбора интерфейса в одном из двух вариантов - Проводник или Commander. В первом случае, результатом является имитация панели проводника (с удаленным режимом доступа) с левой боковой панелью и сопутствующей схемой горячих клавиш. Если говорить о втором типе интерфейса, то здесь, скорее, прослеживаются аналогии с Far Manager, MC, Norton Commander, при этом клавиатурные сочетания также приближены к классическим файлменеджерам.

Поддержка сессий, вкладок, синхронизация каталогов, сравнение файлов источника/приемника - имеются среди других возможностей. Многие панели настраиваемы, можно их закрепить/открепить, убрать через меню View. Однако WinSCP в наименьшей степени графический клиент в типичном понимании, здесь устройство несколько иное. Функциональность не впечатлит малоопытного пользователя ввиду того, что многие опции скрыты в командном режиме - в меню можно обнаружить выход на утилиту Putty, командную строку и другие специальные инструменты для работы с вышеуказанными протоколами.

Заявленная поддержка скриптов окажется полезной при автоматизации передачи данных или планирования заданий (что заинтересует опытных пользователей). Достаточно подробная инструкция по планированию заданий в Windows через командную строку в руководстве.

Что касается FTP, функциональность достаточно заурядная, и, более того, нет функции FXP, которая в FTPRush, например, указана чуть ли не основной. Впрочем, FXP поддерживается далеко не на каждом сервере.

На странице с переводами можно найти частичную русификацию (выполненную на 80%).

Резюме

Клиент предназначен для аудитории опытных пользователей, которые, прежде всего, работают с протоколами SFTP, SCP и FTPS с использованием терминала.

[+] Управление через консоль
[+] Гибкая настройка SFTP, SCP и FTPS
[+] Неплохие возможности по автоматизации

Cyberduck - не совсем типичный продукт в нише FTP-клиентов, поскольку в наибольшей степени он позиционируется как «файловый браузер» для платформ Windows и Mac OS. Поддерживаются протоколы FTP, SFTP, WebDAV, Cloud Files, Google Drive, Google Storage и Amazon S3.

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

Если удобством FTP-режима программа не может отметиться, то, возможно, кого-то привлечет некоторыми дополнительным функциями, среди которых поддержка хранилищ облачных сервисов, таких как Диск Google или Amazon S3. Тонких настроек для интеграции с сервисами не нашлось. Для экспорта документов из Google Docs можно выбрать формат файлов, в случае с Amazon - настройки шифрования и др. Относительно функциональности, опять же, ничего в защиту Cyberduck сказать нельзя: так, простая операция вроде назначения прав доступа в Google Диск куда более интуитивна в оригинальном интерфейсе. Использование неудобной альтернативы здесь представляется сомнительным.

Вообще, в связи с очень простым интерфейсом Cyberduck нельзя назвать оптимальным клиентом для работы с вышеназванными сервисами. Однако, как файловый менеджер для просмотра документов он вполне сгодится. Можно лишь возлагать надежды на то, что разработчики «подтянут» функциональность в одном из направлений - либо работа с FTP, либо поддержка облачных сервисов.

Резюме

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

[+] Унифицированный интерфейс
[−] Малое количество настроек
[−] Неудобный файловый менеджер
[−] слабая поддержка облачных сервисов

CoreFTP LE

Данный файловый менеджер примечателен поддержкой протоколов SFTP, SSL, TLS, FTPS, IDN, режима командной строки, FXP, прокси нескольких типов. LE - это бесплатная облегченная версия клиента, PRO содержит множество дополнительных функций, таких как шифрование файлов, zip-архивирование, синхронизация и .

В оболочке CoreFTP LE чувствуется «старая школа». И, хотя расположение панелей достаточно интуитивно, для комфортной работы нужно все перенастраивать. Можно воспользоваться командой Reset View для смены режима отображения: например, сместить логи вверх, убрать лишние панели и прочее.

Если говорить о возможностях при работе с FTP, в стандартные функции CoreFTP входят создание заданий для нескольких сайтов, рекурсивные операции с файлами (закачка, скачивание и удаление). Многопоточность в LE-версии недоступна, тем не менее, немалое количество опций открыто в разделе «Connections». В разделе Transfers можно включить компрессию - в LE-версии, правда, не все опции доступны.

Сайт-менеджер очень гибок в настройке, радует количество протоколов и предусмотренных опции для SSH,SSL/TSL. Настройки безопасности можно найти в «Advanced File Settings». Не забыты прокси, в списке доступны FTP Proxy/HTTP 1.1/SOCKS. Для продвинутых пользователей будет интересен раздел «Script/Cmds», хотя, судя по всему, командный режим здесь представлен более скромно, чем в WinSCP, и терминал отсутствует.

Резюме

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

[−] Нет планировщика
[−] Устаревший интерфейс
[+] Хорошая функциональность
[+] Продвинутые настройки SSH,SSL/TSL и прокси

BitKinex

Перечень особенностей, указанный на сайте BitKinex, сводится к удобствам пользовательской среды, однако, если обратить внимание на другие аспекты, в сухом остатке будет поддержка протоколов FTP, FXP, FTPS, SFTP, HTTP, HTPS, WebDAV, функций FXP и Indirect Transfers (FTP->SFTP, WebDAV->FTPS, HTTP->FTP и т. п.). Другие возможности приведены на странице . Из них следует, что BitKinex можно также использовать для создания зеркал, в качестве менеджера загрузок - то есть, весьма универсальный клиент.

Для создания подключения предназначен стартовый мастер настройки «Quick Connect», который, впрочем, можно пропустить, перейдя к окну «Control Window». Здесь собраны источники данных для всевозможных протоколов, каждый из которых поддается тщательной настройке. Все источники группируется по типу протокола.

Операции с файлами на сервере производятся в другом окне - «Browse Window», которое открывается при подключении к источнику. В данном окне представлен стандартный двухколоночный менеджер. В основной области локальный и удаленный источники, слева - список хостов, внизу - список задач и лог.

Возможна интеграция с Проводником Windows, поддерживается перетаскивание между окнами, и, что наиболее интересно, drag & drop данных между протоколами. Доступно множество операций с файлами и папками, такие как сравнение, блокирование, смена прав доступа CHMOD и прочие операции. Программа поддерживает режим командной строки. Из дополнительных функций стоит отметить синхронизацию и зеркалирование.

Резюме

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

[+] Отличная функциональность
[+] Удобная группировка источников
[−] Недостаточно интуитивный интерфейс

Компания CoffeeCup известна своими простыми, «казуальными» программами, клиент Free FTP не стал исключением. В описании возможностей часто употребляется слово «easy». Тем не менее, поддерживается не только протокол FTP, но и SFTP, FTPS, что позволило включить этот клиент в обзор.

Для создания подключения нужно перейти в «Manage Servers», где уже обосновался аккаунт S-Drive. Программа достаточно навязчиво «рекомендует» подключить данный сервис, удалить из менеджера сайтов его нельзя.

Очевидно то, что клиент CoffeeCup Free FTP нацелен на работу со статическими сайтами, так как здесь присутствует встроенный редактор с автодополнением, сворачиванием кода, подсветкой и прочими удобствами. Увы, доступен только в платной версии и при этом занимает половину рабочей области программы и отдельный раздел настроек. Его легко убрать из виду, переключившись в режим «FTP View».

Основных опций немного, особенно по части защищенных протоколов. В принципе, логично, что начинающий пользователь скорее предпочтен небезопасный и более знакомый FTP. В настройках также присутствуют параметры прокси, хотя выбрать тип соединения нельзя, возможно лишь добавить сервер(-ы) в список. Из примечательных особенностей можно отметить встроенный ZIP-архиватор. Достаточно странно, также здесь же нашлось место клиенту PuTTY - «запаска» на случай использования CoffeeCup Free FTP опытными пользователями?

Резюме

Клиент от CoffeeCup чрезвычайно прост в использовании, поскольку функциональность не позволяет запутаться. Пожалуй, будет полезен начинающим веб-мастерам, которым нужно редактировать HTML-файлы на сервере, либо в период знакомства с веб-технологиями.

[+] Клиент легко освоить
[−] Навязчивость S-Drive
[−] Отсутствие поиска, синхронизации и сравнения каталогов
[−] Встроенный текстовый редактор

Сводная таблица


FileZilla FTPRush WinSCP CoreFTP LE BitKinex
Разработчик Tim Kosse FTPRush WinSCP CoreFTP LE BitKinex
Лицензия Freeware (GPL) Freeware Freeware (GPL) Freeware (GPL) Freeware Freeware Freeware
Платформы Windows, Linux, Mac OSX Windows 2000+ Windows 2000+ Windows, Mac OSX Windows Windows XP+ Windows XP+
Протоколы FTP, SFTP, FTPS FTP, SFTP, TFTP+ FTP, SFTP, SCP, FTPS FTP, SFTP, WebDAV, Cloud Files, Google Drive, Google Storage, Amazon S3 SFTP, SSL, TLS, FTPS, IDN FTP, FTPS, SFTP, HTTP, HTPS, WebDAV+ FTP, SFTP, FTPS
Консоль + + + + +
Прокси FTP, HTTP, SOCKS FTP, HTTP, SOCKS+ FTP, HTTP, SOCKS, Telnet+ системный FTP, HTTP, SOCKS FTP, HTTP, SOCKS +
Удаленный поиск + + + + +
Синхронизация + + + + + +
Сравнение содержимого каталогов + + + + +