Загрузка файлов из формы, $_FILES,

Чтобы была возможность загрузить файл на сервер, нужно:

1. добавить тег input с атрибутом type=file

2. для тега форм добавить атрибут enctype=multipart/form-data

3. для тега форм добавить атрибут method=post



После отправки формы все необходимые данные по загруженным файлам будут в массиве $_FILES
Далее нужно переместить файл из временной папки в нужную нам, используя move_uploaded_file() , которая ничем не отличается от функции rename()

Стилизация input[type=file]

Иногда требуется поменять вид данного элемента формы:
пример
подробнее тут: https://stackoverflow.com/questions/572768/styling-an-input-type-file-button


Ошибки при загрузке больших файлов

Если пользователь попытается загрузить большой файл, а точнее больший чем указан в настройках php ( upload-max-filesize, который должен быть меньше чем post-max-size, который должен быть меньше оперативной памяти), то файл не загрузится и выведется на экрна ошибка. Рекомендуем в php.ini ставить миниум 32мб и 34мб соответственно.

Как вариант решения использовать input type="hidden" name="MAX_FILE_SIZE" value="30000000", где value- максимальный размер загружаемых файлов в байтах. Это поле должно стоять перед input type=file!!! Подробнее тут.

p.s. Мультизагрузку нескольких файлов, включая ajax мы проходим в продвинутом тренинге.

По заданию ниже:
вот как должна выглядеть форма изначально:


Пред. урок След. урок