PHP. Руководство по PHP. 2005
Загрузка на сервер нескольких файлов
Глава 38. Загрузка файлов на сервер
Загрузка на сервер нескольких файлов
Загрузку нескольких файлов можно реализовать используя, например, различные значения name для тега input.
Также предусмотрена возможность автоматического получения организованной в массив информации о нескольких одновременно загружаемых файлах. Для реализации такой возможности используйте тот же синтаксис отправки массива из HTML-формы, что и для множественных полей select и checkbox:
Замечание. Поддержка загрузки нескольких файлов была добавлена в PHP 3.0.10.
Пример 38-3. Загрузка нескольких файлов
<form action=file-upload.php method=post enctype="multipart/form-data">Send these files:<p>
<input name="userfile[]" type=file><p>
<input name="userfile[]" type=file><p>
<input type=submit value="Send files">
</form>
В случае, если такая форма была отправлена, массивы $_FILES['userfile'], $_FILES['userfile']['name'], и $_FILES['userfile']['size'] будут инициализированы (точно так же, как и $HTTP_POST_FILES для PHP4.1.0 и более ранних версий). Если конфигурационная директива register_globals установлена значением on, также будут инициализированы сопутствующие глобальные переменные.
Каждая из таких переменных будет представлять собой численно индексированный массив соответствующих значений для принятых файлов.
Например, предположим, что были загружены файлы /home/test/review.html и /home/test/xwp.out. В таком случае переменная $_FILES['userfile']['name'][0] будет установлена значением review.html, а переменная $_FILES['userfile']['name'][1] - значением xwp.out. Аналогично, переменная $_FILES['userfile']['size'][0] будет содержать размер файла review.html и так далее.
Переменные $_FILES['userfile']['name'][0], $_FILES['userfile']['tmp_name'][0], $_FILES['userfile']['size'][0] и $_FILES['userfile']['type'][0] также будут инициализированы.
Наиболее распространенные ошибки
Поддержка метода PUT