2017-07-19 65 views
1

我有一個表單上傳兩個文件。如果我上傳小文件,它工作得很好,但如果我上傳大文件給了我這樣的警告: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一些定義是什麼?

謝謝

+1

您是否嘗試過運行'php -i'並檢查了'Loaded Configuration File'(不僅僅是'Configuration File')的正確.ini文件 – Daniel

+0

Works!謝謝@丹尼爾 – user3242861

+0

很高興能有所幫助。我已經將我的評論添加爲一個問題,希望能夠幫助其他人解決同樣的問題。隨時接受我的回答:) – Daniel

回答

1

在php.ini中更改upload_max_filesize和post_max_size應該可以解決您的問題。

確保您正在更改正確的PHP文件 - 如果您運行php -i(這是在命令行環境中運行phpinfo()的一種方法),您將看到配置文件和加載的配置文件。

確保您使用加載的配置文件,而不是另一個。

0

從錯誤很明顯,最大大小仍設置爲8M。如果您的值在php.ini中確實是正確的,請仔細檢查它們是否未被其他地方覆蓋。

您應該檢查:

  • 的php.ini
  • 的.htaccess
  • 其他阿帕奇/ nginx的配置文件

如果你不能找到它被設置,你可能會搜索您的系統8M哪些可能找到設置值的文件。

編輯:它可能被證明是有用的挖掘到拋出ValidatePostSize中間件,並嘗試在那裏進行一些調試。

我是否必須在laravel中更改一些定義?

沒有,你可以看到ValidatePostSize中間件對ini_get('post_max_size')比較$request->server('CONTENT_LENGTH')

+0

我將.htaccess文件置於問題中。 @JimWright – user3242861

+0

當我搜索8M顯示我這個在php.in ... memory_limit = 128M;腳本可能消耗的最大內存量(8MB)@JimWright – user3242861