ホームページ >バックエンド開発 >PHPチュートリアル >PHPで複数のファイルのアップロードを実装する方法
実際、複数の ファイルのアップロード は、単一のファイルのアップロード と同様です。 まず、以前のファイル アップロード フォームのファイルは file[] に変更されます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>upload files</title> </head> <body> <form action="upload.php" enctype="multipart/form-data" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> 上传文件:<input type="file" name="file[]"/><br/> 上传文件:<input type="file" name="file[]"/><br/> 上传文件:<input type="file" name="file[]"/><br/> <input type="submit" value="上传" /> </form> </body> </html>アップロードでは、PHPは$_FILESを使用して次の
<?php print_r($_FILES); ?>を表示します。単一ファイルのアップロードの原則に従って、最初に何を取得する必要があるかを考えてください。 明らかに、ファイル情報の配列を取得する必要があります。このとき取得するのは、対応するキー値が存在する多次元配列です。 、上記の 3 つのファイルのように、対応する 3 つのファイル情報配列に分割するだけで済みます。 分割配列の構造
Array ( [file] => Array ( [name] => Array ( [0] => 照片1.jpg [1] => 照片2.jpg [2] => 照片3.jpg ) [type] => Array ( [0] => image/jpeg [1] => image/jpeg [2] => image/jpeg ) [tmp_name] => Array ( [0] => F:\wamp\tmp\php36C7.tmp [1] => F:\wamp\tmp\php36C8.tmp [2] => F:\wamp\tmp\php36C9.tmp ) [error] => Array ( [0] => 0 [1] => 0 [2] => 0 ) [size] => Array ( [0] => 0 [1] => 0 [2] => 0 ) ) )以下は配列を分割して再構成するコードです
Array ( [0] => Array ( [name] => 照片1.jpg [type] => image/jpeg [tmp_name] => F:\wamp\tmp\php13C1.tmp [error] => 0 [size] => 385150 ) [1] => Array ( [name] => 照片2.jpg [type] => image/jpeg [tmp_name] => F:\wamp\tmp\php13D2.tmp [error] => 0 [size] => 242043 ) [2] => Array ( [name] => 照片3.jpg [type] => image/jpeg [tmp_name] => F:\wamp\tmp\php13D3.tmp [error] => 0 [size] => 488293 ) )残りは単一のファイルをアップロードして配列を一度処理する手順を繰り返すだけです。 コードは次のとおりです:
<?php //print_r($_FILES['file']); $arr=$_FILES['file']; $files=array(); for($i=0;$i<count($arr['name']);$i++){ $files[$i]['name']=$arr['name'][$i]; $files[$i]['type']=$arr['type'][$i]; $files[$i]['tmp_name']=$arr['tmp_name'][$i]; $files[$i]['error']=$arr['error'][$i]; $files[$i]['size']=$arr['size'][$i]; } print_r($files); ?>
以上がPHPで複数のファイルのアップロードを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。