Проверка файла Laravel не позволяет ничего через - PullRequest
0 голосов
/ 03 июля 2019

Разочаровывает одно: я проверяю загрузку файла в моем приложении Laravel, и вот моя строка, которая выдает ошибки (я буквально скопировал это из StackOverflow и дважды проверил, что это было правильно в документах Laravel):

'video_file' => 'mimetypes:video/avi,video/mpeg,video/quicktime'

Итак, вы, вероятно, думаете: «Хорошо, вы загружаете один из этих типов? ВЫ УВЕРЕНЫ?».

Да.

Я снял проверку, загрузил тот же видеофайл и запустил этот код, чтобы проверить, какой тип MIME был:

$files = $request->file('video_file');
foreach($files as $file) {
   file_get_contents($file);
   return $file->getMimeType();
}

Хотите знать, что он вернул?

video/quicktime

Итак, как мне проверить, что кто-то загружает видеофайл?Если честно, на данный момент мне действительно не нужно проверять каждый тип видео, мне просто нужно убедиться, что это ВИДЕО.Неважно, если это .mov, .mp4, .avi, что угодно.

Имейте в виду, что это «множественный» вход для загрузки файла, так что, возможно, это как-то связано с этим,Я так не думаю, потому что я снял это, и оно все еще не прошло.

Есть какие-нибудь мысли?

1 Ответ

1 голос
/ 03 июля 2019

При проверке массивов лучше использовать this .

Например:

'video_files' => 'array',
'video_files.*' => 'mimetypes:video/avi,video/mpeg,video/quicktime',

Как вы можете видеть, я бы также предложил использовать множественную клавишу при работе с массивом, но это личный вкус.

...