ЗАГАЛЬНІ ВІДОМОСТІ

Щоб користувач міг завантажити файл на сервер з web-страницы, на цій сторінці має бути присутньою форма з параметром заголовка enctype, рівному "multipart/form-data", а також із спеціальним полем типа file (виглядає як поле введення імені файлу з кнопкою "Огляд", натискує на яку, можна відображувати вікно вибору файлу) і кнопкою submit (див., наприклад, ріс.7.3). Як тільки ця кнопка натискуватиме, браузер почне передавати файл, вказаний в полі типа file, на сервер. У заголовку форми також слід вказати параметр action, значенням якого має бути ім'я сторінки з оброблювальним завантажений файл сценарієм.
Завантаження файлу на сервер уміють здійснювати практично всі браузери (лише найстаріші моделі Microsoft Internet Explorer і Netscape Navigator цього не можуть), а сприйняти її можуть всі web-серверы (окрім CERN і деяких найпростіших), у тому числі і найпоширеніший - Apache.
Після того, як файл повністю завантажений на сервер, він поміщається в його тимчасову теку і знаходиться там до тих пір, поки web-сервер не закінчить обробляти і віддавати браузеру користувача ту сторінку, ім'я якої було вказане в параметрі action форми завантаження файлу. Після повної видачі сторінки користувачеві файл віддаляється. Звідси витікає, що на цій сторінці мають бути обов'язково присутніми команди, що переміщають цей файл в яку-небудь теку.
Сторінці, вказаній в параметрі action заголовка форми, передаються декілька змінних ( Якщо в конфігураційному файлі РНР - php.ini - параметр regis-ter_globals встановлений в on) тих, що містять інформацію про завантажений файл. Саме на їх основі сценарій на ній зможе працювати із завантаженим файлом. Крім того, ці ж самі змінні поміщаються в масив $HTTP_POST_FILES ( Якщо в конфігураційному файлі РНР -php.ini - параметр track_varsустановлен в on), а в РНР версій 4.1 і вище -і в масив SFILES (на відміну від змінних і масиву SHTTPPOSTFILES цей масив за умовчанням доступний і у всіх функціях, розміщених на сторінці з програмою-обробником завантажених файлів).
Ось ці змінні:

  1. 1. Змінна, що має те ж ім'я, що і поле з типом file у вихідній формі. Якщо воно виглядало як < input name= "Uploadf ile" type= " f ile">, то змінна матиме ім'я $uploadfile (і відповідно ще $HTTP_POST_FILES['uploadfile']['tmp_name'], $_FILES [ ' uploadf ile ' ] [ ' tmp_name ' ]). У цю змінну записується те ім'я (тимчасове, таке, що створюється автоматично), яке завантажений файл має в теці тимчасових файлів. Саме з ним працюватимуть команди копіювання файлу.
    Якщо у вихідній формі присутнє декілька полів типа file з різними іменами, то для кожного з них створюється своя змінна із значенням, що відноситься до відповідного файлу.
  2. 2. Змінна, що має ім'я "Змінна 1 jiame", - тобто до імені першої змінної просто приписується горизонтальна риска і слово name, наприклад, для вищезгаданого прикладу її ім'я виглядатиме як $uploadf ile_name (ну і, зрозуміло, те ж саме значення набудуть елементи вищезазначених масивів $HTTP_POST_FILES['uploadfile']['name'], $_FILES ['uploadf ile ' ] ['name ' ]). Її значенням є вихідне ім'я файлу в системі відправника.
  3. 3. Змінна, що має ім'я "Змінна 1_size". Її значення -размер завантаженого файлу в байтах.
  4. 4. Змінна, що має ім'я "Змінна 1_type". Її значення -тіп завантаженого файлу згідно специфікації MIME (наприклад, "image/gif").

Всі ці змінні можна використовувати в PHP-сценарии, розташованому на вказаній в параметрі action заголовка форми, належній передавальній файл сторінці. Для копіювання файлу використовується команда сміттю ("ім'я копійованого файлу (і дорога до нього)", "дорога до теки, в яку потрібно файл скопіювати і його нове ім'я там"). Дорога до файлу в тимчасовій теці можна не вказувати (вона використовується за умовчанням), а дорога до теки, куди файл має бути поміщений, повинна вказуватися відносний від того каталога, в якому знаходиться сторінка з оброблювальним завантажений файл сценарієм.
Про видалення файлу з тимчасової теки після копіювання його в потрібний каталог можна не думати - це, як вже було сказано, станеться автоматично.

 
На правах реклами: 1 2

:: Меню ::

ГОЛОВНА

Введення

Небагато про Web-программировании

PHP: Історія. Місця. Джерела.

PHP: Основи

PHP: Вибіркове завантаження

PHP: Простий інтернет-магазин

PHP: Папкопотрошилка

PHP: Закачування файлів

PHP: Авторизація доступу

PHP: Гостьова книга

PHP: Система оцінки матеріалів

PHP: Файловий менеджер

PHP: Корисні дрібниці

PHP: Способи передачі даних між окремими сторінками

Висновок

Додаток 1. Перетвори свій сайт на портал

Додаток 2. Використовуй те, що під рукою - і не шукай завжди інше

Додаток 3. На сайті - як в "Вінде"


:: Реклама ::

  Настройка і оптимізація комп'ютера

 

:: Статистика ::

  Індекс цитування

:: Навігація ::

Головна

Гостьова книга

Додати у вишукане  

 

 

 


Copyright © Asentli, 2008