ホームページ  >  記事  >  バックエンド開発  >  PHP の「post_max_size」と「upload_max_filesize」はファイルのアップロードでどのように連携しますか?

PHP の「post_max_size」と「upload_max_filesize」はファイルのアップロードでどのように連携しますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-31 00:01:02389ブラウズ

 How Do PHP's `post_max_size` and `upload_max_filesize` Work Together for File Uploads?

PHP ファイルのアップロード サイズ制限について

PHP 構成設定 post_max_size と Upload_max_filesize は、ファイル アップロードの処理において重要な役割を果たします。

混乱

この例では、post_max_size が 8Mb に設定され、upload_max_filesize が 16Mb に設定されています。論理的には、最大 16Mb のファイルをアップロードできると想定できます。ただし、小さい post_max_size 制限はこの想定をオーバーライドするため、8Mb を超えるファイルをアップロードしようとするとエラーが発生します。

制限の定義

  • upload_max_filesize : アップロードされる 1 つのファイルの最大サイズを指定します。
  • post_max_size: ファイルを含む送信されるすべてのデータを含む、HTTP POST リクエスト本文全体の最大サイズを指定します。

制限の相互作用

post_max_size は、POST 経由で送信されるすべてのファイルとその他のデータの合計サイズに対する合計制限として機能します。これは、upload_max_filesize でより大きなファイルが許可されている場合でも、全体のリクエスト サイズは post_max_size に従う必要があることを意味します。

大規模ファイルのアップロードのためのソリューション

ファイルのアップロードを許可するにはpost_max_size より大きい場合は、POST を使用せずにファイルを送信する別の方法を見つける必要があります。これには、以下が含まれる可能性があります。

  • Multipart/form-data: HTTP リクエストのサイズ制限とは関係なくファイルのアップロードを処理するカスタム スクリプトを使用します。
  • PUT/PATCH HTTP メソッド: これらのメソッドを使用して、REST API 経由で大きなファイルをアップロードします。

エラー検出

post_max_size を超えると、$ _POST と $_FILES は空になります。ただし、$_SERVER['CONTENT_LENGTH'] は 0 より大きくなります。ポスト変数またはファイルが送信されない場合、$_SERVER['CONTENT_LENGTH'] は 0 になることに注意することが重要です。

以上がPHP の「post_max_size」と「upload_max_filesize」はファイルのアップロードでどのように連携しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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