Laravel 字体扩展验证
Posted
技术标签:
【中文标题】Laravel 字体扩展验证【英文标题】:Laravel font extensions validations 【发布时间】:2019-09-09 00:47:56 【问题描述】:我正在使用表单请求验证来验证字体扩展。我正在上传字体类型,我的规则是这样的:
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
这是什么原因?
【问题讨论】:
【参考方案1】:对于 mime 类型验证,您有两种方法可以在 Laravel 中进行。一个使用mimetypes
,另一个使用mimes
。我认为在这里您需要mimes
,因为这是检查文件扩展名的验证。
所以,
'fontwoff' => 'file|mimes:woff',
应该适用于扩展名为 .woff
的文件。
【讨论】:
我尝试将 mimetypes 更改为 mime for woff & woff2 但它不起作用并且有相同的错误。错误主要发生在两个扩展(woff & woff2)'fontwoff' => 'file|mimes:woff', 'fontwoff2' => 'file|mimes:woff2',
以上是关于Laravel 字体扩展验证的主要内容,如果未能解决你的问题,请参考以下文章