Для загрузки пользовательских файлов на сервер используется специальный элемент управления,позволяющий указать путь к загружаемому файлу(при помощи кнопки Обзор).Элемент управления имеет следующий синтаксис:

Помимо атрибута type,элемент управления допускает указание атрибутов name и size.Простая форма для отправки файла на сервер демонстрируется ниже:

HTML-форма для загрузки файлов на сервер - index.html

Атрибут enctype формы определяет вид кодировки,которую браузер применяет к параметрам формы.Для того чтобы отправка файлов на сервер действовала,атрибуту enctype необходимо присвоить значение multipart/form-data.По умолчанию этот атрибут имеет значение application/x-www-form-urlencoded.
После того как получен HTTP-запрос,содержимое загруженного файла записывается во временный файл,который создается в каталоге сервера,заданном по умолчанию для временных файлов,если другой каталог не задан в файле php.ini(директива upload_tmp_dir).
Характеристики загруженного файла доступны через двумерный суперглобальный массив $_FILES.При этом переменная со значением этого массива может иметь следующий вид:
- $_FILES['filename']['name](содержит исходное имя файла на клиентской машине);
- $_FILES['filename']['size'](содержит размер загруженного файла в байтах);
- $_FILES['filename']['type'](содержит MIME-типа файла);
- $_FILES['filename']['tmp_name'](содержит имя временного файла,в который сохраняется загруженный файл).
Проверить успешность загрузки файла на сервере можно при помощи специальной функции is_upload_file(),которая принимает в качестве единственного параметра имя файла ($_FILES['filename']['name']) и возвращает TRUE в случае успешной загрузки и FALSE в случае неудачи.
Ниже приведен скрипт upload.php,который загружает файл на сервер и копирует его из временного каталога в каталог temp/.

После выполнения этого скрипта выбранный для загрузки файл будет помещен в подкаталог temp каталога,в котором расположен скрипт,а браузер выдаст фразу "Файл успешно загружен".
Следующий скрипт позволяет вывести характеристики загруженного файла.Для этого необходимо модифицировать скрипт так,как представлено ниже:

В некоторых случаях требуется ограничить размер файла,который может быть загружен на сервер.К примеру,чтобы зазрешить загрузку на сервер файлов размером не более 4Мбайт,нужно скрипт так,как это представлено ниже:
Ограничение размера загружаемого файла

Максимальный размер загружаемого файла можно также задать при помощи директивы upload_max_filesize,значение которой по умолчанию равно 2 Мбайт:
if($_FILES['filename']['size'] > upload_max_filesize)
Значение директивы upload_max_filesize можно изменить в конфигурационном файле php.ini.