68916

Завантаження файлів

Лекция

Информатика, кибернетика и программирование

Завантаження файлів на сервер по протоколу HTTP здійснюється набагато чаші, чим ви можете подумати: Web-інтерфейси поштових сервісів дозволяють додати до листа вкладення, а для цього потрібно спершу завантажити файл на сервер, а тільки після цього додавати до листа.

Украинкский

2014-09-27

48 KB

0 чел.

Лекція № 9

Тема: Завантаження файлів

План

  1.  Multipart-форми та їх опис.
  2.  Обробка multipart-форм.

Multipart-форми і їх опис

Завантаження файлів на сервер по протоколу HTTP здійснюється набагато чаші, чим ви можете подумати:

- Web-інтерфейси поштових сервісів дозволяють додати до листа вкладення, а для цього потрібно спершу завантажити файл на сервер, а тільки після цього додавати до листа.

- Інтерактивні фотогалереї і фотоальбоми просто не можуть існувати без механізму завантаження файлів.

- Web-інтерфейси засобів управління контентом, які використовуються для управління сайтом, дозволяють завантажувати файли на сервер у вказаний каталог.

Завантаження файлу на сервер здійснюється за допомогою так званої multipart-форми, в якій є поле завантаження файлу, — <input type=file>. При цій якості параметра enctype указується значення multipart/form-data:

<form action=upload.php method=POST enctype=multipart/form-data>

<input type=file name=UFile>

Ім'я файлу на сервері <Input type=text name=Filename>

<input type=submit name=upload value=3агрузить>

</form>

Як виглядає Multipart-форма можна подивитися на мал

Multipart-форма

Multipart-форми зазвичай використовують метод передачі POST. Як видно з вищенаведеного прикладу дана форма зазвичай має два поля:

Поле файлу вибору файлу для закачування <INPUT type=File>.

Поле вказівки імені файлу, яке він повинен буде мати на сервері <INPUT type=text>.

Сценарій завантаження файлів на сервер.

Обробка multipart-форм

Перш, ніж приступити до написання сценарію завантаження файлу, потрібно відредагувати файл конфігурації /etc/php.ini, щоб вирішити завантаження файлів. Відкрийте файл конфігурації і знайдіть секцію File uploads. У ній будуть три параметри:

file_uploads = On — вирішує завантаження файлів на сервер по протоколу HTTP.

upload_tmp_dir = /tmp — встановлює каталог для тимчасового зберігання завантажених файлів.

upIoad_max_fiIesize — встановлює максимальний об'єм файлів які можуть бути завантажені.

Якщо ваш Web-сервер працює під управлінням операційної системи Linux, потрібно перезапустити сервіс:

service httpd restart

Під Windows 9x/NT нічого робити не потрібно, оскільки РНР не вбудовується, як модуль в Apache.

Як же РНР обробляє Multipart-форми? Отримавши файл, він зберігає його в тимчасовому каталозі upload_tmp_dir, ім'я файлу вибирається випадковим чином. Потім він створить чотири глобальних змінних:

$UFile (так називається поле завантаження файлу) — містить ім'я файлу I в тимчасовому каталозі, наприклад, /tmp/phpJ6r5eR.

$UFiIe_name — ім'я файлу до його відправки на сервер, наприклад | /home/den/water.png або c:\water.png.

$UFiIe_size — розмір прийнятого файлу в байтах.

$UFiIe_type — тип прийнятого файлу (якщо браузер зміг його опреде- ] лити), наприклад, image/png, image/jpeg, text/html.

Після завершення роботи сценарію тимчасовий файл буде видалений. Це означає, що ми повинні його скопіювати в інше місце до завершення роботи сценарію. Тобто алгоритм роботи сценарію завантаження файлів такий:

Якщо не натиснута кнопка "Submit" — відобразити форму завантаження файлу. 1

Якщо кнопка "Submit" натиснута, то файл вже буде завантажений на сервер і j його ім'я буде в змінній $UFile. В цьому випадку сценарій винен відразу скопіювати файл з ім'ям $UFile у який-небудь каталог (ви повинні мати права запису в цей каталог). Ви НЕ можете зберегти ім'я файлу в Cookies і скопіювати його при наступному запуску сценарію — файлу з ім'ям $UFile вже не буде — це звичайний тимчасовий файл і він буде видалений при завершенні роботи сценарію. Копіювання проводиться функцією copy():

copy($UFile, "/var/www/html/uploads/".basename($UFile_name) );

Потрібно використовувати тільки функцію копіювання. Використовувати функцію переміщення немає ніякого сенсу, оскільки:

Тимчасовий файл буде видалений автоматично.

Якщо тимчасовий каталог знаходиться на іншому носієві, ми отримаємо повідомлення про помилку.

Припустимо, що нам потрібно завантажити файл в каталог uploads, який знаходиться в кореневому каталозі Web-сервера (каталозі DocumentRoot).

// Про всяк випадок створюємо каталог. Якщо він вже створений,

// повідомлення про помилку буде

// пригнічене оператором @ @mkdir("uploads",0777) ;

// Копіюємо файл з /tmp в uploads

// Ім'я файлу буде таким же, як до відправки на сервер

copy($UFile, "uploads/".basename($UFile_name));


 

А также другие работы, которые могут Вас заинтересовать

43540. Цифровой блок управления (ЦБУ) электроприводом для позиционирования транспортера в соответствии с заданным количеством кодовых импульсов датчика угла поворота электропривода 168 KB
  Расчет формирователя импульсов Счетчик импульсов Расчет импульсного усилителя мощности Объект разработки Разработать цифровой блок управления ЦБУ электроприводом для позиционирования транспортера в соответствии с заданным количеством кодовых импульсов датчика угла поворота электропривода. ЦБУ должен содержать фотоэлектрический импульсный датчик формирователь импульсов счетчик импульсов с предустановкой командный триггер и импульсный усилитель мощности.
43542. Расчет усилителя постоянного тока 176.5 KB
  Макс = 225мВТ Входная и выходная статистические характеристики транзистора типа КТ325А приведены на рис.15 Uкэ мах постоянный напряжение коллекторэмиттер В15 Pк мах постоянная рассеиваемая мощность коллектора мВт: при Tс = 6085 С.макс = 225мВТ Входная и выходная статистические характеристики транзистора типа КТ355А приведены на рис.15 Uкэ мах постоянный напряжение коллекторэмиттер В15 Pк мах постоянная рассеиваемая мощность коллектора мВт: при Tс = 6085...
43543. Компьютерная программа для работы с фотографиями людей 1.25 MB
  Описание поставленных задач и алгоритмы используемых методов Описание разработанной программы Перспективы дальнейших исследований. Активация программы и сохранение локальной лицензии. Для достижения поставленной цели в работе в первую очередь потребуется решить следующие задачи: Создать удобный понятный интерфейс программы продумать логику работы пользователя в приложении. Разработать необходимые алгоритмы обработки полученных данных Внедрить их в проект без ущерба совместимости приложения с...
43544. Роль производственных фондов в технологических процессах 892.5 KB
  Имея ясное представление о роли каждого элемента основных фондов в производственном процессе физическом и моральном их износе факторах влияющих на использование основных фондов можно выявить методы направления при помощи которых повышается эффективность использования основных фондов и производственных мощностей предприятия обеспечивающая снижение издержек производства и рост производительности труда. Цель данной курсовой работы состоит в изучении роли производственных фондов в технологических процессах в изучении факторов...
43545. Расчет переходных процессов при нарушении симметрии трехфазной цепи 5.53 MB
  Составим схему замещения прямой последовательности Определим параметры схемы замещения прямой последовательности: 1 Система С 2Линия Л 3Трансформатор Т 4Автотрансформатор АТ 5Нагрузка Н 6Асинхронный двигатель АД 7Генератор Г Найдем и для этого свернем схему Составим схему замещения обратной последовательности Определим параметры схемы замещения обратной последовательности: 1 Система С 2Линия Л...
43546. Расчет и регулирование дебита скважин 50.5 KB
  Скважины эксплуатируются при постоянном забойном давлении Рс. Исходные данные в соответствии с вариантом Горизонтальный однородный пласт имеет радиус контура питания: Rк = м; Залежь водоплавающая; Пористость m = ; Температура 0С; Давление устьевое при остановке добычи варианты для добычи нефти ат; Разность давлений пластового и забойного варианты для добычи газа ат; Пластовое давление ат; Глубина м; Мощность пласта: b = м; Коэффициент пористости пласта: m = ; Коэффициент проницаемости...
43547. Разработка стратегии обслуживающей организации на примере центра по обучению иностранным языкам 269.5 KB
  Ввиду отсутствия осязаемых характеристик услуги до ее покупки степень неопределенности приобретения увеличивается. Чтобы ее сократить, покупатели ищут "сигналы" качества услуги. Свои выводы относительно качества они делают исходя из места, персонала, цены, оборудования и средства предоставления услуги, которые они могут видеть.
43548. Геоинформационная система г. Барнаула 554 KB
  Работа с готовым ГИС-проектом осуществляется посредством специального гибкого инструмента запросов. Запрос на получение информации об объектах векторной карты составляется пользователем с помощью специальных условий, по которым ArcView определяет круг объектов, атрибуты которых удовлетворяет заданным условиям. Условия могут быть по нескольким параметрам, т.е. вложенными, но не должны взаимно исключать друг друга