PHP を使用する際、複数のファイルをアップロードしようとしたときに障害に遭遇しました。提供されたコード スニペットを詳しく調べて問題に対処することで、この課題を克服する方法を検討してみましょう。
HTML ファイルには、複数選択が可能なファイル入力フィールドを備えたフォームが含まれています。 (複数=複数)。ボタンをクリックすると sendfile() 関数がトリガーされ、アップロード プロセスが開始されます。 sendfile() 関数は FormData オブジェクトを作成し、選択したファイルを反復処理して、それらをデータ ペイロードに追加します。次に、jQuery の ajax() 関数を利用して、処理のためにデータを Uploadfile.php に送信します。
PHP ファイル (uploadfile.php) はターゲット ディレクトリを定義し、アップロードされたファイルを 1 つずつ移動しようとします。
提供されたコードは、アップロードされた各ファイルを誤って一度に 1 つずつ移動しようとします。これは、単一のファイルには機能しますが、複数のファイルを選択した場合には機能しません。問題の核心は、for ループの構造にあります。
適切な修正は、より包括的な foreach ループを使用して、アップロードされたファイルを反復処理することです。このアプローチにより、各ファイルが確実に処理され、ターゲット ディレクトリに移動されます。
これを実現するには、uploadfile.php に次の調整が必要です。
<code class="php">foreach ($_FILES['myfile']['name'] as $i => $name) { if (move_uploaded_file($_FILES['myfile']['tmp_name'][$i], $target . $name)) { echo 'Successfully copied'; } else { echo 'Sorry, could not copy'; } }</code>
この改良されたバージョンは、複数のファイルを正しく処理します。各ファイルの名前と一時パスを反復処理することで、ファイルを個別に移動できるようになります。このループにより、選択されたすべてのファイルが考慮され、指定されたターゲット ディレクトリに移動されることが保証されます。
以上が以下に、記事に基づいた質問形式の記事タイトルをいくつか示します。 * **PHP での複数のファイルのアップロード: `move_uploaded_file` が失敗する理由とその修正方法** * **複数のファイルのアップロードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。