从表单验证控制器上的图标

Validate favicon on controller from form

我想验证我的文件,只有 .ico 文件。 Laravel 我认为不包括 x-icon mime,我该如何验证它?

  $logo = $request->file('logo');
  $favicon = $request->file('favicon');

  $request->validate([
    'logo'=>'image|mimes:png',
    'favicon'=>'',
     ]);

按照说明制作自定义验证规则here

简而言之:

先做:

php artisan make:rule CheckIfFavicon

然后:

在创建的规则文件中创建验证代码。

试试这样的东西:

  public function passes($attribute, $value)
        {
            return $value->getClientOriginalExtension() == 'ico';
        }

然后将其添加到验证中。请注意,如果您进行自定义验证 class,则必须将 $request->validate([...]) 中的语法从管道传输更改为数组。

$request->validate([
    'favicon' => [new CheckIfFavicon], 
]);

如果您只想检查文件扩展名,请在代码中使用 $file->getClientOriginalExtension()

$ext = $file->getClientOriginalExtension();
if($ext == 'ico'){
  //uploadfile
}else{
  //do something else
}

参考this