PHP マニュアル
前のページ | 第 38章ファイルアップロードの処理 | 次のページ

# 複数ファイルのアップロード

`input` で異なった `name` を 使用することにより、複数のファイルをアップロードすることができます。

複数のファイルを一度にアップロードし、自動的にまとめられた情報を 配列で取得することが可能です。これを行うには、HTML フォームで 複数選択可能なセレクトやチェックボックスを指定する際と同様、 配列を用いた投稿用の構文を使用する必要があります。

> 注意: 複数ファイルのアップロード機能は 3.0.10 以降サポートされました。

例 38-4. 複数ファイルのアップロード

    <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']` (4.1.0 より前のバージョンの PHP の場合は $HTTP_POST_FILES)が設定されま す。 `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 メソッドのサポート