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

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

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

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

例 18-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'] (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] も設定されます。