Хорошо, я пытаюсь загрузить видео и проверить тип файла.
Согласно документации:
мимы: Foo, бар,...
Файл под проверкой должен иметь тип MIME, соответствующий одному из перечисленных расширений.
Основное использование правила MIME
'photo' = > 'mimes: jpeg, bmp, png'
Я загружаю wmv-видео, и мои правила таковы:
return [
'file' => ['required', 'mimes:video/x-ms-wmv']
]
Я сделал print_r()
на Request::file('file')
, и я получаю следующие данные:
Symfony\Component\HttpFoundation\File\UploadedFile Object
(
[test:Symfony\Component\HttpFoundation\File\UploadedFile:private] =>
[originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => SampleVideo.wmv
[mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => video/x-ms-wmv
[size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 70982901
[error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
[pathName:SplFileInfo:private] => C:\wamp\tmp\php6428.tmp
[fileName:SplFileInfo:private] => php6428.tmp
)
Однако я получаю сообщение об ошибке:
{"file":["The file must be a file of type: video\/x-ms-wmv."]}
Я попытался изменить "тип mime" на video/*
, wmv
(в соответствии с документами), а также video/x-ms-wmv
, но никто из них не корректно проверяет файл.
Как видно из print_r()
, тип mime Symfony получает video/x-ms-wmv
.
Я что-то делаю неправильно? Или может Laravel/Symfony просто не проверять файлы?
Я ценю помощь
Edit
Итак, я открыл validator.php
и добавил echo $value->guessExtension();
к методу ValidateMimes()
, и он выводит asf.
Почему вывод Symfony video\x-ms-wmv
, расширение файла - wmv, я проверяю их оба, но Laravel гадает asf
?!
Это слишком ненадежно для проверки видео для меня.