Скрипт завантаження різних документів з сервера. Путівник по безкоштовним 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/.

Встановлюється програма просто. Для цього слід двічі клацнути мишею на завантаженому файлі, ухвалити ліцензійну угоду та кілька разів натиснути кнопку Далі(Далі). Можливо, програма інсталяції попросить вас вказати папку, в яку слід встановити програму. Справа в тому, що це дуже маленька програма, всього близько 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) виберіть рядок Нормальний(Нормальний). Якщо ж логіна та пароля у вас немає, виберіть пункт Анонімний(Anonymous). У цьому випадку в полях введення імені користувача та пароля будуть введені дані за промовчанням.

3. Після того, як ви введете потрібні дані, натисніть кнопку Добре.Діалогове вікно Менеджер сайтів(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-серверами, що тільки на них і проводитимете час в Інтернеті. Зазвичай з ними працюють професіонали (веб-дизайнери, мережеві адміністратори та ін.). Для звичайних користувачів існує

Як зробити свій сайт і заробити на ньому. Практичний посібник для початківців із заробітку в Інтернеті автора Мухутдінов Євген

Але програма 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 параметр файлу і в цьому параметрі передається ім'я текстового документа. Наприклад, ми хочемо завантажити текстовий файл з ім'ям 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
[−] Відсутність пошуку, синхронізації та порівняння каталогів
[−] Вбудований текстовий редактор

Зведена таблиця


FileZillaFTPRushWinSCP CoreFTP LEBitKinex
РозробникTim KosseFTPRushWinSCP CoreFTP LEBitKinex
ЛіцензіяFreeware (GPL)FreewareFreeware (GPL)Freeware (GPL)FreewareFreewareFreeware
ПлатформиWindows, Linux, Mac OSXWindows 2000+Windows 2000+Windows, Mac OSXWindowsWindows XP+Windows XP+
ПротоколиFTP, SFTP, FTPSFTP, SFTP, TFTP+FTP, SFTP, SCP, FTPSFTP, SFTP, WebDAV, Cloud Files, Google Drive, Google Storage, Amazon S3 SFTP, SSL, TLS, FTPS, IDNFTP, FTPS, SFTP, HTTP, HTPS, WebDAV+ FTP, SFTP, FTPS
Консоль+ + + + +
ПроксіFTP, HTTP, SOCKSFTP, HTTP, SOCKS+FTP, HTTP, SOCKS, Telnet+системнийFTP, HTTP, SOCKSFTP, HTTP, SOCKS+
Віддалений пошук+ + + + +
Синхронізація+ + + + + +
Порівняння вмісту каталогів+ + + + +