2017-07-19 61 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