我正在使用表单请求验证来验证字体扩展名。我正在上传字体类型,我的规则是这样的:
public function rules()
{
if($this->method() == 'POST') {
return [
'fonteot' => 'file|mimetypes:eot,application/vnd.ms-fontobject',
'fontttf' => 'file|mimetypes:ttf,application/x-font-ttf,font/ttf,application/x-font-truetype',
'fontwoff' => 'file|mimetypes:woff,application/font-woff,application/x-font-woff,font/woff',
'fontwoff2' => 'file|mimetypes:woff2,font/woff2',
];
}
return [
'fonteot' => 'file|mimetypes:eot,application/vnd.ms-fontobject',
'fontttf' => 'file|mimetypes:ttf,application/x-font-ttf,font/ttf,application/x-font-truetype',
'fontwoff' => 'file|mimetypes:woff,application/font-woff,application/x-font-woff,font/woff',
'fontwoff2' => 'file|mimetypes:woff2,font/woff2',
];
}
根据文档,我使用mime类型的文件扩展名但我的验证器无法传递woff和woff2并重定向到我的表单并返回错误消息:
fontwoff必须是以下类型的文件:woff,application / font-woff,application / x-font-woff,font / woff
fontwoff2必须是以下类型的文件:woff2,font / woff2
这是什么原因?
对于mime类型验证,您有两种方法可以在Laravel中执行此操作。一个是使用mimetypes
另一个是使用mimes
。我想在这里你需要mimes
,因为这是检查文件扩展名的验证。
所以,
'fontwoff' => 'file|mimes:woff',
应该适用于扩展名为.woff
的文件。