2017-07-19 52 views
1

私は2つのファイルをアップロードし、フォームを持っています。私は小さなファイルをアップロードする場合、それはうまく動作しますが、私は大きなファイルをアップロードする場合、私にこの警告を与える:Laravel - アップロードファイルエラー「PostTooLargeException」

警告:31996010バイトのPOSTのコンテンツ長は、ライン上で不明で8388608バイトの制限を超えて0

私はphp.in upload_max_filesizepost_max_sizeを変更するには教えていくつかの記事を読みました。私は200Mに変更し、mampを再起動します。

私がするphpinfoファイルに行けば、私は200Mとの両方のパラメータを見たので、それはそれを変更しますが、警告連続してファイルをアップロードしないでください。

アップロードする私のコードがあること:

$coverName = uniqid($catalogue->companyId.'_C'.$catalogue->ref.'_'); 
    $fileName = uniqid($catalogue->companyId.'_P'.$catalogue->ref.'_'); 
    $coverExtension = $request->file('cover')->getClientOriginalExtension(); 
    $pdfExtension = $request->file('pdf')->getClientOriginalExtension(); 
    $destination = '/storage/app/public/uploads'; 

    $request->file('cover')->move($destination, $coverName.".".$coverExtension); 
    $request->file('pdf')->move($destination, $fileName.".".$pdfExtension); 

.htaccessファイル:

<IfModule mod_rewrite.c> 
<IfModule mod_negotiation.c> 
    Options -MultiViews 
</IfModule> 

RewriteEngine On 

# Redirect Trailing Slashes If Not A Folder... 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ /$1 [L,R=301] 

# Handle Front Controller... 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

# Handle Authorization Header 
RewriteCond %{HTTP:Authorization} . 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

私はlaravelで、いくつかの定義を変更する必要がありますか?

は、最大サイズがまだ8Mに設定されていることは明らかであるエラーからあなたに

+1

'php -i'を実行しようとしましたが、' Loaded Configuration File'の正しい.iniファイル( 'Configuration File'だけではない)をチェックしましたか? – Daniel

+0

Works!ありがとう@ダニエル – user3242861

+0

助けになるのはうれしいです。私はそれが同じ問題を持つ他の人を助けることができることを願って質問に私のコメントを追加しました。私の答えを受け入れること自由に感じてください:) – Daniel

答えて

1

はあなたの問題を解決する必要があります。

php -i(コマンドライン環境でphpinfo()を実行する方法)を実行すると、正しいPHPファイルが変更されていることを確認してください。設定ファイルとロードされた設定ファイルの両方が表示されます。

ロードされたコンフィギュレーションファイルを使用することを忘れないでください。

0

ありがとうございます。 php.iniで実際に値が正しい場合は、別の場所で上書きされていないか再度確認してください。あなたがチェックする必要があります

  • php.iniの
  • の.htaccess
  • その他のapache/nginxの設定ファイル

それが設定されている場所を見つけることができない場合は、値が設定されているファイルを見つけるかもしれない8Mのためにシステムを検索することができます。

EDIT:PostTooLargeExceptionがスローされたミドルウェアValidatePostSizeミドルウェアを掘り下げてデバッグを試みると便利です。

私はlaravelにいくつかの定義を変更する必要がありますか?

いいえ、あなたはValidatePostSizeミドルウェアがini_get('post_max_size')に対して$request->server('CONTENT_LENGTH')を比較していることがわかります。あなたのphp.iniのupload_max_filesizeとpost_max_sizeの変更

+0

私は.htaccessファイルを入れてください。 @JimWright – user3242861

+0

私が8Mを検索すると、php.inでこれが表示されます... memory_limit = 128M;スクリプトが消費するメモリの最大量(8MB)@JimWright – user3242861

関連する問題