一般的なアップロード プロセスを要約します。
- ユーザーはファイルを選択します
- 彼らはアップロード(またはフォームを送信するもの)をクリックします
- ファイルは multipart/form-data フォームを使用して php 一時フォルダーにアップロードされます
- PHP スクリプトが呼び出され (フォームのターゲット)、tmp フォルダー内のファイル パスが渡されます。
- PHPスクリプトは、ファイルをtmpフォルダーからWebページ上のフォルダーにコピーすることを決定します
これは明らかに 1 つのことを示しています: PHP スクリプトでファイルを検証する場合、すべてのファイルが既に完全にアップロードされている必要があります。これは、他のファイルがアップロードされている間に、各ファイルのスクリプトを個別に呼び出すことができないことを意味します (html および通常のフォームでは不可)。 )。
また (ファイルをチェックする必要がある要件によっては)、セキュリティ上の理由から、javascript を使用してファイルを検証できない場合があります。
したがって、単純な (しかし満足のいくものではない) 解決策があります。ユーザーにすべてのファイルをアップロードさせてから、JavaScript を使用して 1 つずつ検証します。それらが要件を満たしている場合は、目的のフォルダーにコピーします。そうでない場合は、そのままにしておくと、tmp フォルダーから消去されます。1 つだけ欠点があります。ユーザーは、大きなファイルをアップロードするときに、要件を満たさなかったことを知るまでに長時間待つ必要があります。