php - formrequest - laravel validation unique two columns
Laravel-ValidaciĆ³n de archivo de video (5)
Ese código está buscando la extensión, pero no el tipo MIME. Debe usar el tipo MIME apropiado:
Video Type Extension MIME Type
Flash .flv video/x-flv
MPEG-4 .mp4 video/mp4
iPhone Index .m3u8 application/x-mpegURL
iPhone Segment .ts video/MP2T
3GP Mobile .3gp video/3gpp
QuickTime .mov video/quicktime
A/V Interleave .avi video/x-msvideo
Windows Media .wmv video/x-ms-wmv
Si no está seguro del tipo MIME del archivo que está probando, puede probar $file->getMimeType()
¿Es así como validar un archivo de video en laravel?
$validator = Validator::make(Input::all(),
array(
''file'' => ''mimes:mp4,mov,ogg | max:20000''
)
);
porque incluso si el archivo cargado es un tipo de mov, devolverá que el archivo debe ser uno de los enumerados en la regla anterior.
Cómo terminé resolviéndolo: Tal como se indica a continuación en la respuesta, terminé almacenando el tipo de mimo para el archivo cargado en una variable $mime
como esta:
$file = Input::file(''file'');
$mime = $file->getMimeType();
Luego tuvo que escribir una instrucción if para verificar los tipos de mime de video:
if ($mime == "video/x-flv" || $mime == "video/mp4" || $mime == "application/x-mpegURL" || $mime == "video/MP2T" || $mime == "video/3gpp" || $mime == "video/quicktime" || $mime == "video/x-msvideo" || $mime == "video/x-ms-wmv") {//process upload}
Te estoy dando los siguientes tipos de MIME de extensión para la validación de laravel
Sé que esta es una pregunta más antigua, pero hoy me encontré con el mismo problema. Laravel no validaría un tipo de archivo .mov, incluso si tuviera ''mov'', ''quicktime'' o ''video / quicktime'' en el validador. getMimeType () en el archivo mostraba ''video / quicktime'', por lo que parecía realmente extraño.
Buscando en la clase de validador de Laravel, parecía que estaba usando guessExtension () en lugar de getMimeType () para verificar el archivo. Cuando puse ''qt'' como el tipo mime en el validador (que es lo que guessExtension () estaba devolviendo) funcionó.
http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
Debe agregar qt en tipos:
$validator = Validator::make(Input::all(),
array(
''file'' => ''mimes:mp4,mov,ogg,qt | max:20000''
)
);
Usa este tipo de meme
$this->validate($req, [
''video'' => ''required|mimes:mp4,ogx,oga,ogv,ogg,webm'',
]);
Este formato funciona bien para la carga de archivos OGG.