0
1

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 3 years have passed since last update.

laravel6.xで画像アップロード時にCall to a member function store() on stringエラーが発生したときの対処方法

Posted at

#執筆背景
laravelを使って画像アップロード機能を実装していたところ、フォームからファイルを添付して送信ボタンを押した際に、

Call to a member function store() on string
413 Request Entity Too Large

というエラーが発生しました。
これについての対処方法をまとめていきます。
#結論
このエラーは、nginxの最大ファイルアップロードサイズのデフォルト値よりも大きいファイルをアップロードすると起こるエラーです。
(ちなみにデフォルト値は、2MBに設定されています。)

解決方法としては、
nginxの設定ファイルに記載されている最大ファイルアップロードサイズのデフォルト値を任意に変更する
ことで解決します。

参考記事 → https://www.keycdn.com/support/413-request-entity-too-large

#作業内容
nginxのファイルの場所は開発環境によって変わりますが、
今回はHomesteadを利用した開発環境での作業内容を記載するため、
それ以外の開発環境で作業をしている方は参考にならないかもしれません。
ご了承ください。

なお、今回使用しているlaravelのバージョンは6.xです。

vagrant上の**/etc/nginx/stes-enable**にサーバーの情報などが書かれたファイルである
Homestead.laravel← (この名前は、Homestead.yamlファイルで設定しているドメイン名によって変わります)
があるので中身をvimコマンドで開く

$ cd /etc/nginx/stes-enable
$ ls
Homestead.laravel
$ cd vim Homestead.laravel

Homestead.laravelファイルを開くと概ね以下のような内容が記載されているため、その中の
client_max_body_size
の項目を任意の値に変更する。

server {
    listen 80;
    listen 443 ssl http2;
    server_name .homestead.laravel_tutorial;
    root "/home/vagrant/laravel_tutorial/book_management/public";

    index index.html index.htm index.php;

    charset utf-8;

    client_max_body_size 100m; ← この値を(例えば100mなど)、余裕のある値に変更する

最後に、以下のコマンドでnginxを再起動する。

sudo service nginx reload

これでファイルのアップロードができるようになります。

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?