CrimsonGlory / posaderos

0 stars 0 forks source link

si subo un .php me dice que se subió bien. #102

Closed CrimsonGlory closed 9 years ago

CrimsonGlory commented 9 years ago

Si subo un archivo .php me dice que se subió bien. (aunque no lo sube) Debería decir que la extensión no está en la lista de las extensiones permitidas. Esto estaba bien antes y se ve que se rompió con el commit: https://github.com/CrimsonGlory/posaderos/commit/ab3c6f904d968547f7089b98d064a6026c7e0319 (se rompió porque los mensajes de errores estan en el else del if de validator->passes() ) Lo volvería poner como estaba antes:

$ext = pathinfo($file->getClientOriginalName(),PATHINFO_EXTENSION);
if($validator->passes() && $this->extension_is_valid($ext))

Lo malo del código anterior: si $validator->passes() es false calculamos $ext de más. se puede hacer

if($validator->passes() && $this->extension_is_valid(pathinfo($file->getClientOriginalName(),PATHINFO_EXTENSION)))
aguspuentes commented 9 years ago

Si lo ponés así y se hace click en guardar sin elegir ningún archivo la página tira error porque cuando hace el pathinfo() el archivo no existe. En todo caso habría que preguntar primero si $file != null.

CrimsonGlory commented 9 years ago

ahh claro. entonces justo después del foreach($files as $file) ahí iría el if.

aguspuentes commented 9 years ago

No había visto la segunda forma que pusiste donde preguntás por el pathinfo() adentro del if. Me parece que esa forma andaría bien, porque si no se elige ningún archivo y se da click en guardar el $validator->passes() va a dar false y no va a preguntar por el pathinfo(), así que ahí la página no debería tirar error. Después en el else se encarga de cargar los errores para que aparezcan en la view, incluido el tema de la extensión válida. A la tarde lo pruebo y me fijo que ande todo bien.