LoginSignup
0
0

More than 3 years have passed since last update.

post_max_sizeとupload_max_filesizeの違い

Posted at

php.iniにおけるupload_max_filesize と post_max_sizeの違いについて。
ちなみにphpinfo()で確認できる。

upload_max_filesize

一つのファイルの最大ファイルサイズ。
この値を超えてしまうと、$_FILES[‘hoge’][‘error’]にUPLOAD_ERR_INI_SIZEがセットされる。

post_max_size

POST送信全体のデータサイズ。
このpost_max_sizeを超えるサイズのPOST送信があった場合、$_FILES[‘hoge’][‘error’]はnullとなり、エラーコードはセットされない。

気をつけること

PHPでは、設定したpost_max_sizen値より、ポストしたファイルサイズが大きかった場合、リクエスト内容そのものが破棄されるため、
リクエストに対してファイルサイズの大きさを制限するバリデーション(size)を使用してもバリデーション できない。
例えば、

php.ini
upload_max_filesize = 20MB
post_max_size = 10MB

だったとして、POSTメソッドで、送信するファイルサイズが15MBだった場合、リクエスト内容そのものが破棄される。

→URLルーティングされたコントローラクラスより先にリクエストを受け取ることができる、Middlewareを利用して、バリデーションを行う。

参考

https://pointsandlines.jp/server-side/php/laravel-post_max_size
https://ageo-soft.info/programming_languages/php/81/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0