在Laravel中验证文件

时间:2019-05-11 11:19:50

标签: php laravel laravel-5

我已经验证:

public function saveUser($request)
    {
        // validacja
        $this->validate($request, [
            'name' => 'required|string',
            'surname' => 'required|string',
            'email' => 'required|email'
        ]);

        if ($request->hasFile('userPicture')) {
            $this->validate($request, [
                'userPicture' => 'image|max:1000'
            ]);
        }

        // save
    }

我需要添加此验证:

'userPicture' => 'image|max:1000'
  • 文件类型:仅jpg / jpeg

我该怎么做?

3 个答案:

答案 0 :(得分:1)

那又怎么样:

'userPicture' => 'max:1000|mime:image/jpeg'

文档指出您可以使用以下mime类型: https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types

image / jpeg 允许: image / jpeg-jpeg jpg jpe

有关更多信息: https://laravel.com/docs/5.8/validation#rule-mimes

答案 1 :(得分:0)

答案 2 :(得分:0)

Mime是您需要设置的文件类型规则。

因此,您可以先创建规则数组,然后进行验证:

public function saveUser($request)
{
    // validacja
    $rules = [
        'name' => 'required|string',
        'surname' => 'required|string',
        'email' => 'required|email'
    ];

    if ($request->hasFile('userPicture')) {
        $rules['userPicture'] = 'image|max:1000|mimes:jpeg'
    }

    $this->validate($request, $rules);
    // save
}