我有一个上传两个文件的表单。如果我上传小文件它运行良好,但如果我上传大文件给我这个警告:
警告:POST内容长度31996010字节超过了第0行的Unknown中的8388608字节限制
我已经阅读了一些文章,告诉我们更改php.in upload_max_filesize
和post_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中的某些定义?
谢谢
答案 0 :(得分:1)
在php.ini中更改upload_max_filesize和post_max_size可以解决您的问题。
确保您正在更改正确的PHP文件 - 如果您运行php -i
(这是在命令行环境中运行phpinfo()
的方法),您将看到配置文件和加载配置文件。
确保使用已加载的配置文件,而不是另一个。
答案 1 :(得分:0)
从错误中可以清楚地看出,最大尺寸仍然设置为8M
。如果你的值在php.ini中确实是正确的,请仔细检查它们是否在其他地方被覆盖。
你应该检查:
如果找不到它的设置位置,可以在系统中搜索8M
,它可能会找到设置该值的文件。
编辑:深入研究引发ValidatePostSize的PostTooLargeException中间件并尝试进行一些调试可能会很有用。
我是否必须更改laravel中的某些定义?
不,您可以看到ValidatePostSize中间件将$request->server('CONTENT_LENGTH')
与ini_get('post_max_size')
进行比较。