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));


 

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

27894. Устранение дефектов деталей пластическим деформированием 80.5 KB
  Технология восстановления: подготовка к деформированию деформирование обработка после деформирования 1 Подготовка включ в себя отжиг или высокий отпуск если холодное деформирование; или нагрев детали если горячее деформирование I нагрева не должна вызывать пережога или перегрева Ме 2 Стальные детали с НК.С 2030 или детали цветных Ме сплавов деформируют в холодном состоянии Для всех остальных случаев проводится термообработка перед холодным деформированием или нагрев перед горячим 3 Механическая обработка восстх повей до...
27895. Диагностирование системы питания двигате 42 KB
  Обкатка=приработкаиспытание. Приработка это активный процесс изменения макро и микро геометрии физмех свойств трущихся поверхностей с целью скорейшего достижения оптимальных параметров для последующего восприятия нагрузок. Приработка происходит в 2 этапа: 1приработка стендовая 2 часа; 2приработка в начальный период эксплуатации 3040 часов. Стендовая приработка: вызывается необходимостью подготовки ДВС к восприятию эксплуатационных нагрузок и повышению его долговечности.
27896. Назначение, принципиальное устройство и газового редуктора системы питания двигателя на сжиженном газе 46 KB
  3 Силы действующие на автомобиль и силовой баланс автомобиля. Вторую группу составляют: Mf1 Mf2 моменты сопротивления качению колес автомобиля; Fв сила сопротивления воздуха; Fi сила сопротивления подъему; Fjx сила сопротивления поступательному ускорению масс автомобиля; Fnx продольная составляющая силы сопротивления прицепа. У одиночного автомобиля сила сопротивления прицепа отсутствует. К третьей группе относятся: Rz1 Rz2 нормальные реакции дороги; Ga cos α нормальная составляющая веса автомобиля; Fпz нормальная...
27897. Определение трудоёмкости по видам работ 39 KB
  К постовым относятся работы по ТО и ТР выполняемые непосредственно на а м моечные уборочные смазочные крепёжные диагностические и т. Работы по проверке и ремонту узлов механизмов и агрегатов снятых с автомобиля выполняются на участках агрегатном слесарномеханическом электротехническом и т. Для формирования объёмов работ выполняемых на постах зон ТО ТР и производственных участках а также определения числа рабочих по специальности производится распределение годовых объёмов работ ТО1 ТО2 и ТР по их видам в а затем в...
27898. Основные виды нормативов системы ТО и Р. Корректирование нормативов 37.5 KB
  Регулирование естественных монополий на транспорте Любая естественная монополия на транспорте заинтересована в увеличении цен на предлагаемые услуги формируя тарифы по затратному принципу. Новым качественным подходом к системе управления в области транспорта является создание новой системы государственного регулирования в сфере естественных монополий на транспорте. Для реализации этого нового подхода к управлению и регулированию была создана Федеральная служба России по регулированию естественных монополий на транспорте. К деятельности...
27899. Организация поста по ТО газобаллонной аппаратуры 83.5 KB
  втулки из цветных Ме отверстия в проушинах рулевых сошек рычагов поворотных цапф и тд. Для обжатия втулок из цветх Ме используют приспособление с конусной матрицей в холодном состоянии Проушину сошки нагревют до г=900Т. 3 Причины преждевременного износа и разрушения а м шин.
27900. Диагностирование тормозных качеств а/м. Параметры. Оборудование 47 KB
  К первой группе относятся: тормозной путь и замедление автомобиля тормозные силы и их разность на колесах каждой оси ко второй сила нажатия на педаль скорость нарастания и спада тормозных сил время срабатывания тормозных механизмов хода штоков тормозных камер свободный ход педали производительность компрессора и некоторые другие. Перечисленные диагностические параметры измеряют: путем ходовых испытаний на дороге; в процессе эксплуатации встроенными средствами диагностирования; в стационарных условиях при помощи тормозных...
27901. Диагностирование а/м по мощностным и экономическим показателям. Устройство стендов 50 KB
  Исследования показывают что до 30 автомобилей АТП эксплуатируют со значительным недоиспользованием мощности и перерасходом топлива. После диагностирования и устранения обнаруженных неисправйостей средняя максимальная сила тяги увеличилась а средний контрольный расход топлива уменьшился в среднем на 13 кроме того значительно снизилось рассеивание этих показателей. Восстановление колесной мощности автомобиля повышает его среднюю скорость движения а следовательно и производительность работы а м а также снижает расход топлива. На этих...
27902. Пластины АКБ 34 KB
  Сильно сульфатированные пластины бракуют слабо сульфотированные восстанавливают без разборки без разборки батарей продолжительным зарядом током малой силы не более 005 от емкости при низкой плотности электролита не более 111 2 Варианты ремонта ЦПГ двигателя поминальный размер ремонтный размер сухая и мокрая гильза Различают мокрые и сухие гильзы. Внешняя поверхность мокрых гильз омывается охлаждающей жидкостью а сухие гильзы непосредственно с охлаждающей жидкостью не соприкасаются и избыточное тепло отводится через...