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


 

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

22268. НАРУШЕНИЯ КРОВООБРАЩЕНИЯ. Тромбоз 42.5 KB
  Неблагоприятный: септический аутолиз тромба рассасывание тромба под действием микробов что опасно сепсисом и кровотечением отрыв тромба тромбоэмболия которая может привести к инфаркту. Значение: тромбоз может привести к нарушению кровоснабжения органа и развитию инфаркта гангрены. ТЭЛА может привести к красному инфаркту легкого или к внезапной смерти. ИНФАРКТ Определение: инфаркт это сосудистый ишемический некроз который возникает вследствие прекращения...
22269. Некроз. Патогенетические формы 33 KB
  Этиологические формы: токсический некроз эта форма встречается при действии на ткани организма токсинов яды биологи ческой природы токсины палочки дифтерии бактерий или химической природы кислоты щелочи. травматический некроз этот некроз возникает при действии сильных физических факторов высокие или низкие температуры электроток. сосудистый некроз связан с острым нарушением кровоснабжения органа или ткани.
22270. Влияние внутренней среды на разработку и реализацию управленческих решений 229.5 KB
  Внутренняя среда организации – эта та часть общей среды, которая находится в пределах организации. Она оказывает постоянное и самое непосредственное воздействие на различные аспекты функционирования организации, в том числе на процесс разработки и реализации управленческих решений
22271. Социально–экономическое положение Шпаковского района Ставропольского края 192 KB
  Цель данного курсового проекта – охарактеризовать социально – экономического положение Шпаковского муниципального района не только с экономической стороны, но и со стороны туристской деятельности, а также предложить проект по реализации туристского потенциала Шпаковского района.
22272. Сушарка розпилювальна дискова для зневоднення бульйону пташиного 1.95 MB
  Вологу з матеріалів можна видалити різними способами: механічним, фізико-хімічним та тепловим. При механічному способі вологу відтискують у пресах або центрифугах. Фізико-хімічний спосіб ґрунтується на застосуванні вологовідбірних засобів і використовується переважно в лабораторній практиці.
22273. ОСТРЫЕ ПНЕВМОНИИ 37.5 KB
  Локализация: Паренхиматозная пневмония воспалительный экссудат в альвеолах Бронхопневмония экссудат в бронхах и альвеолах Межуточная пневмония клеточный инфильтрат в строме легкого. Вид экссудата: Серозная пневмония Серознолейкоцитарная Гнойная Фибринозная крупозная Геморрагическая Серозногеморрагическая. КРУПОЗНАЯ ПНЕВМОНИЯ Определение. Крупозная пневмония острое инфекционноаллергическое заболевание с поражением целой доли легкого долевая пневмония фибринозным экссудатом в альвеолах паренхиматозная...
22274. ПАРЕНХИМАТОЗНЫЕ ДИСТРОФИИ (ПД) 27.5 KB
  Гиалиновокапельная дистрофия Определение: это тяжелая необратимая белковая паренхиматозная дистрофия при которой в цитоплазме появляются крупные капли похожие на гиалин. Гидропическая дистрофия Определение: это тяжелая необратимая белковая паренхиматозная дистрофия характеризующаяся появлением в клетке вакуолей наполненных жидкостью. При резко выраженной дистрофии клетки похожи на баллон это баллонноя дистрофия. Роговая дистрофия Определение: эта дистрофия характеризуется образованием большого количества рогового вещества в ороговевающем...
22275. Самодержавие и реформы в России во второй половине XIX, в начале XX века 284 KB
  Первые шаги к отмене крепостного права в России были сделаны императором Александром I в 1803 году изданием Указа о вольных хлебопашцах, в котором прописан юридический статус отпускаемых на волю крестьян.
22276. СМЕШАННЫЕ ДИСТРОФИИ (СД) 39 KB
  НАРУШЕНИЯ ОБМЕНА ХРОМОПРОТЕИДОВ Хромопротеиды или эндогенные пигменты делят на три группы гемоглобиногенные ферритин гемосидерин билирубин гематоидин гематины порфирин. Нарушения обмена гемоглобиногенныз пигментов В норме при распаде эритроцитов гемоглобин превращается в пигменты красящие вещества: ферритин гемосидерин билирубин При патологии изза усиленного гемолиза распад эритроцитов могут образовываться новые пигменты: гематоидин гематины порфирины. Среди нарушенного обмена...