Laravel为特定路线设置了最大上传大小限制?

时间:2019-04-04 11:41:29

标签: php laravel file-upload

我只想更改特定路线的upload_max_filesize。但是与PHP> 5.3一样,ini_set()不能用于从脚本设置限制。有什么解决方法吗?

更新

在指定的路由中,我必须根据用户的订阅计划检查上传文件的大小。在其他路由中,我无权访问用户的信息和/或不想检查其他所有路由的文件大小,例如登录路径。并且由于服务器的默认上载大小很大,因此有人可能会故意发布非常大的文件,从而浪费服务器资源。

2 个答案:

答案 0 :(得分:0)

一种简单的方法是使用验证器:

用于设置最大尺寸

$validator = Validator::make($request->all(), [
    'file' => 'max:500000',
]);

该值以千字节为单位。即最大:10240 =最大10 MB

另请参阅:

Laravel Request Validation

如果您想多次使用此规则,可以提出请求并在其中添加此规则

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个网站,

  • 一个允许大文件,仅服务那些特定的路由 负责处理大文件。
  • 另一个用于api路由,并且将upload_max_filesize限制设置为较小的值。