0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

post_max_sizeとupload_max_filesizeの違い

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/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?