Я пытался проверить загрузку с файлом .tar
, и когда я использую метод getMimeType
, он возвращает следующее:
application/gzip
Таким образом, ваше правило проверки должно быть:
'file' => 'required|mimetypes:application/gzip',
Если вы хотите использовать правило mimes
, вам понадобится что-то вроде этого:
'file' => 'required|mimes:gz',
И после некоторых исследований я обнаружил следующее: https://superuser.com/questions/901962/what-is-the-correct-mime-type-for-a-tar-gz-file
Подробнее о том, как валидатор проверяет эти два правила, можно узнать в Illuminate/Validation/Concerns/ValidatesAttributes.php
.
В методе validateMimes
используется метод guessExtension()
файла, который возвращает gz
.
$value->getPath() !== '' && in_array($value->guessExtension(), $parameters)
. При проверке метода validateMimeTypes
используется метод файла getMimeType()
, который возвращает application/gzip
.
return $value->getPath() !== '' &&
(in_array($value->getMimeType(), $parameters) ||
in_array(explode('/', $value->getMimeType())[0].'/*', $parameters));
.