我只想更改特定路线的upload_max_filesize
。但是与PHP
> 5.3一样,ini_set()不能用于从脚本设置限制。有什么解决方法吗?
更新
在指定的路由中,我必须根据用户的订阅计划检查上传文件的大小。在其他路由中,我无权访问用户的信息和/或不想检查其他所有路由的文件大小,例如登录路径。并且由于服务器的默认上载大小很大,因此有人可能会故意发布非常大的文件,从而浪费服务器资源。
答案 0 :(得分:0)
一种简单的方法是使用验证器:
用于设置最大尺寸
$validator = Validator::make($request->all(), [
'file' => 'max:500000',
]);
该值以千字节为单位。即最大:10240 =最大10 MB
另请参阅:
如果您想多次使用此规则,可以提出请求并在其中添加此规则
1。运行
php artisan make:request ExampleRequest
在应用程序/ Http /请求中2。选择ExampleRequest
public function authorize()
{
return true;
}
public function rules()
{
return [
'file'=>'max:500000',
];
}
3。。在需要的地方使用ExampleRequest代替Request
答案 1 :(得分:0)
经过研究,我发现既不可能也不应该那样做!
当带有附加大文件的请求到达框架的Controller / Middleware部分时,它已经浪费了服务器的RAM,CPU和存储。因此从那一点阻止请求没有任何用处。
Web服务器及其网站的相应配置,其中路由应处理大文件,而其他路由则应分开。 所以我想出了2个网站,
upload_max_filesize
限制设置为较小的值。