ホームページ  >  記事  >  バックエンド開発  >  PHP を使用して POST アップロードを処理する場合、$_FILES 配列が空になるのはなぜですか?

PHP を使用して POST アップロードを処理する場合、$_FILES 配列が空になるのはなぜですか?

巴扎黑
巴扎黑オリジナル
2016-11-24 09:21:501292ブラウズ

単純なフォームのアップロード テストを実行すると、サーバー側の php スクリプトで $_FILES 配列が空になるため、ブラウザーからアップロードされた情報を取得できません。

Google を通じて次の Web を見つけます。

PHP アップロード ファイルの空の $_FILES 配列に対する解決策


テスト中に発生した状況は、記事で説明されている最初の理由に属します。つまり、属性 enctype="multipart/form-" が正しくありません。データをアップロードするためのフォームに設定します。

全文は以下に再投稿されます:


phpでファイルをアップロードするときの空の$_FILES配列の解決策:
ファイルをアップロードするアプリケーションとしてphpを使用する場合、$バックグラウンド配列での印刷時に _FILES が空であることが判明しました。この問題は次の 2 つの理由で発生する可能性があります:
フォーム タイプの理由または PHP 設定の問題:
1. フォーム タイプ:
アップロードされたファイルのフォーム エンコード タイプを設定する必要があります。 enctype="multipart/form-data" に渡す必要があるため、ビッグ データの場合、一般的な送信方法は POST です。

2. PHP 設定の問題:
php のデフォルトの post_max_size は 2M です。POST データのサイズが post_max_size よりも大きい場合、解決策は次のとおりです:
1.ファイルは非常に小さいので、アップロードには 1 分以上かかる場合があります。ただし、PHP では、このページのデフォルトの最大実行時間は 30 秒です。これにより、Web ページを開くことができなくなります。この時点で、max_execution_time を変更し、php.ini で max_execution_time を検索します。デフォルトは 30 秒です。範囲は PHP_INI_ALL) 0 は制限がないことを意味します
または PHP ファイルのヘッダーで設定します
2. post_max_size を変更して、POST データに許可される最大サイズを設定します。この設定はファイルのアップロードにも影響します。 post_max_size を見つけて、post_max_size = 150M に変更します (変更可能な範囲は PHP_INI_PHP_INI_PERDIR です)
3. ただし、ファイルをアップロードするとき、最大値は依然として 8M です。なぜですか?アップロードされたファイルの最大サイズ。 Upload_max_filesize を見つけます。デフォルトは 8M で、upload_max_filesize = 100M に変更します (変更可能な範囲は PHP_INI_PHP_INI_PERDIR です)
もう 1 つの注意点は、post_max_size が式全体のサイズであり、upload_max_filesize がアップロードされたファイルのサイズであることです。後者よりも大きいです。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHP の置換次の記事:PHP の置換