13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravelでファイルアップロードが失敗する場合の対処法

Last updated at Posted at 2018-02-13

Laravelで作成したアプリケーションでファイルアップロードしようとしたら失敗しました。
ログを見るとこんなWarningが出力されています。

PHP Warning:  POST Content-Length of 20663856 bytes 
exceeds the limit of 8388608 bytes in Unknown on line 0

POSTリクエストの中身が8MBを超えてますよっていう内容ですね。
PHPではセキュリティなどの都合でリクエストの上限サイズが設定されています。
上限サイズを変更したい場合はphp.iniの設定を変更する必要があります。

post_max_sizeを確認する

php.iniファイルを開いてpost_max_sizeを探します。

post_max_size = 8M

これを超えるサイズのリクエストは空になってしまいますので、指定サイズに変更します。

post_max_size = 20M

大きなファイルをアップロードすると403になってしまったりする場合はこれが原因である場合が多いです。
ログインユーザー情報もリクエストから消えてしまうんですね。

upload_max_filesizeを確認する

同様にしてphp.iniファイルからupload_max_filesizeを探します。

upload_max_filesize = 2M

これを超えるサイズのファイルアップロードは、リクエストの中からファイルのみ空となってしまいます。
こちらはリクエスト自体は空にならないので注意が必要です。

upload_max_filesize = 30M

2つの値を設定したらサーバーを再起動するのを忘れないようにしてください。

それでも改善しない場合

プロジェクトが参照しているphp.iniと異なるファイルを変更しているかもしれません。
phpinfo()メソッドを使用して、指定のphp.iniと変更したphp.iniが同じパスのものか確認してください。

13
13
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
13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?