OK, próbuję przesłać wideo i zatwierdzić typ pliku.Laravel 5 Walidacja mima
Zgodnie z dokumentacją:
mimes:foo,bar,...
The file under validation must have a MIME type corresponding to one of the listed extensions.
Basic Usage Of MIME Rule
'photo' => 'mimes:jpeg,bmp,png'
mam przesyłania wideo WMV, a moje zasady są tak:
return [
'file' => ['required', 'mimes:video/x-ms-wmv']
]
Zrobiłem print_r()
na Request::file('file')
i pojawia się następujący data:
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
)
Jednak pojawia się błąd:
{"file":["The file must be a file of type: video\/x-ms-wmv."]}
Próbowałem zmienić „typ MIME” do video/*
, wmv
(zgodnie z docs), a także video/x-ms-wmv
jeszcze żaden z nich sprawdzić poprawność pliku poprawnie.
Jak widać z print_r()
typu MIME Symfony jest coraz jestvideo/x-ms-wmv
.
Czy robię coś nie tak? A może Laravel/Symfony po prostu nie sprawdza poprawności plików?
I docenić pomocy
Edycja Ok, otwarty validator.php
i dodatkowe echo $value->guessExtension();
sposobu ValidateMimes()
i wyprowadza ASF.
Dlaczego Symfony wyprowadza video\x-ms-wmv
, rozszerzenie pliku to wmv, sprawdzam ich obu, ale Laravel zgaduje asf
?!
To zbyt niewiarygodne dla weryfikacji wideo dla mnie.
Też miałem ten problem, a problem był z wersją PHP, której używałem, spróbuj stworzyć plik php i sprawdź typ MIME wideo z funkcją Fileinfo http://php.net/manual/en/ book.fileinfo.php –