Web 開発の領域では、画像ギャラリーやドキュメントなどのタスクで複数のファイルをアップロードする機能が必要になることがよくあります。管理システムなど。このチュートリアルでは、PHP と jQuery を使用して複数のファイルのアップロードを有効にするプロセスについて説明します。
HTML フォームは、アップロードするファイルが選択されるインターフェイスとして機能します。ここでは、複数のファイルを選択できるように「multiple」属性が設定された「file」タイプの入力フィールドがあります。
<input id="myfile" type="file" name="myfile" multiple=multiple/>
「アップロード」ボタンをクリックすると、sendfile() 関数が実行されます。 onclick イベント ハンドラーによってトリガーされます。
sendfile() 関数は、jQuery を利用して FormData オブジェクトを構築します。このオブジェクトを使用すると、サーバー側スクリプトに送信されるファイルなどのフォーム データを含めることができます。選択した各ファイルは FormData オブジェクトに追加されます:
for (var i = 0, len = document.getElementById('myfile').files.length; i < len; i++) { fd.append("myfile", document.getElementById('myfile').files[i]); }
サーバー側では、uploadfile.php スクリプトがファイルのアップロードを処理します:
<code class="php">$target = "uploadfolder/"; // for($i=0; $i <count($_FILES['myfile']['name']); $i++){ if(move_uploaded_file($_FILES['myfile']['tmp_name'], $target.$_FILES['myfile']['name'])) { echo 'Successfully copied'; }else{ echo 'Sorry, could not copy'; } // }
ただし、このコードは複数のファイルを反復処理するループが欠けているため不完全です。提供された正しい回答に示されているようにループを実装する必要があります。
回答で提供された例では、jQuery コードと HTML 構造は次のとおりです。上記の不完全なコードに似ています。主な違いは、load.php スクリプトにあります。
複数のファイルを処理するためにループが実装されています。
<code class="php">foreach ($_FILES as $key) { if($key['error'] == UPLOAD_ERR_OK ){ $name = $key['name']; $temp = $key['tmp_name']; $size= ($key['size'] / 1000)."Kb"; move_uploaded_file($temp, $path . $name); echo " <div> <h1>File Name: $name</h1><br /> <h1>Size: $size</h1><br /> <hr> </div> "; }else{ echo $key['error']; } }
以上がPHP と jQuery で複数のファイルのアップロードを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。