我想使用 valid_file_mimetypes、valid_image_mimetypes 来验证 config/lfm.php 中的文件。有效文件模拟类型:
'valid_image_mimetypes' => [
'image/jpeg',
'image/pjpeg',
'image/png',
'image/gif',
'image/svg+xml',
],
'valid_file_mimetypes' => [
'image/jpeg',
'image/pjpeg',
'image/png',
'image/gif',
'image/svg+xml',
'application/pdf',
'application/rtf',
'application/vnd',
'application/msword',
'application/vnd.ms-excel',
'application/vnd.ms-powerpoint',
'application/vnd.oasis.opendocument.text',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'application/vnd.openxmlformats-officedocument.presentationml.presentation',
'text/plain',
];
我把它们改写了。这是我的代码:
protected function getValidatorMimes($field)
{
$mimes = [];
foreach (config('lfm.' . 'valid_' . $field . '_mimetypes') as $mime) {
$mimes[] = explode('/', $mime)[1];
}
return 'mimes:' . implode(',', $mimes);
}
该函数将返回这个,例如:
'mimes:jpeg,pjpeg,png,gif,svg+xml,pdf,rtf,vnd,msword,vnd.ms-excel,vnd.ms-powerpoint,vnd.oasis.opendocument.text,vnd.openxmlformats-officedocument.spreadsheetml.sheet,vnd.openxmlformats-officedocument.wordprocessingml.document,officedocument.presentationml.presentation,plain'
我在验证时使用它。
$rules = [];
foreach ($fields as $field) {
$rules[$field] = $this->getValidatorMimes($field);
}
$validator = Validator::make(Request::all(), $rules);
但此验证不会跳过单个文件。
我的验证规则正确吗?请帮我?我不知道如何正确使用 mimetypes。