この記事では主に、PHP における単一ファイルのアップロードと複数ファイルのアップロードに関するコードの詳細な分析と問題の解決策を説明します。参考になれば幸いです。
$_FILES が空の配列になるのはどのような場合ですか?
フォーム送信の enctype が php.ini 設定ファイルの multipart/form-data と等しくない場合、 file_uploads = Off で、アップロードされたファイルのサイズ > php.ini 設定ファイルで設定された最大アップロード サイズ
$_FILES が表示される 配列が空の場合、上記の問題が発生する可能性があるため、修正する必要があります。
ファイルを選択せずにすぐに「アップロードボタン」をクリックすると、$_FILES 要素の各属性は空の文字列となり、エラー属性は 4 になります
単一ファイルのアップロード
$ _FILESデータ構造
array( 'filename' => array( 'name' => 'xxx.png', 'type' => 'image/png', 'size' => 2548863, 'tmp_name' => '/img/sdsdsd.png', 'error' => 0 ) )
単一ファイルまたは複数ファイルアップロードのどちらであっても、name / size / type / tmp_name / error の 5 つの固定属性があります
複数ファイルアップロード
単一ファイルアップロードと比較して、複数ファイルアップロードは次のとおりです。フロントエンドの 2 つのマルチファイル アップロード フォームははるかに複雑です
//name相同 <form method="post" enctype="multipart/form-data"> <input type="file" name="wt[]"/> <input type="file" name="wt[]"/> <input type="submit" value="提交"/> </form> //name不同(简单点) <form method="post" enctype="multipart/form-data"> <input type="file" name="wt"/> <input type="file" name="mmt"/> <input type="submit" value="提交"/> </form>
バックエンドの $_FILES の対応するデータ構造は異なります
//name相同 array (size=1) 'wt' => array (size=5) 'name' => array (size=2) 0 => string '新建文本文档 (2).txt' (length=26) 1 => string '新建文本文档.txt' (length=22) 'type' => array (size=2) 0 => string 'text/plain' (length=10) 1 => string 'text/plain' (length=10) 'tmp_name' => array (size=2) 0 => string 'C:\Windows\php1D64.tmp' (length=22) 1 => string 'C:\Windows\php1D65.tmp' (length=22) 'error' => array (size=2) 0 => int 0 1 => int 0 'size' => array (size=2) 0 => int 0 1 => int 1820 //name不同(简单点) array (size=2) 'wt' => array (size=5) 'name' => string '新建文本文档 (2).txt' (length=26) 'type' => string 'text/plain' (length=10) 'tmp_name' => string 'C:\Windows\php39C7.tmp' (length=22) 'error' => int 0 'size' => int 0 'mmt' => array (size=5) 'name' => string '新建文本文档.txt' (length=22) 'type' => string 'text/plain' (length=10) 'tmp_name' => string 'C:\Windows\php39D8.tmp' (length=22) 'error' => int 0 'size' => int 1820
フィールド エラーの目的
値: 1 アップロードされたファイルは、値はphp.iniのupload_max_filesizeオプションによって制限されます。
値: 2 アップロードされたファイルのサイズが、HTML フォームの MAX_FILE_SIZE オプションで指定された値を超えています。
値: 3 ファイルの一部のみがアップロードされました。
値: 4 ファイルはアップロードされませんでした。値: 5 アップロードされたファイルのサイズは 0 です。
関連する推奨事項:
PHP ファイルのアップロード クラス Sharing_php の例
複数のファイルのアップロードを実装するための PHP のメソッド
以上がPHP の単一ファイルと複数ファイルのアップロードの分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。