Руководство по PHP
Пред. | Глава 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:<br />
      <input name="userfile[]" type="file" /><br />
      <input name="userfile[]" type="file" /><br />
      <input type="submit" value="Send files" />
    </form>

В случае, если такая форма была отправлена, массивы `$_FILES['userfile']`, `$_FILES['userfile']['name']`, и `$_FILES['userfile']['size']` будут инициализированы (точно так же, как и `$HTTP_POST_FILES` для PHP 4.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