validar con mensaje si el archivo subido es una fotografía

validar con mensaje si el archivo subido es una fotografía

de Albert Sánchez -
Número de respuestas: 4
Hola, mi situación sería la siguiente; a la hora de editar cada usuario su perfil, una de las opciones es tener o no fotografía, de esto, se encargan las funciones upload_manager, que se trata del constructor, upload_print_form_fragment, que se encarga del control del input de la fotografía, si no me equivoco, y por último para verificar tenemos preprocess_files, que se encarga de la validación de los parámetros, si me equivoco corríganme por favor.

Hasta aquí no tengo problemas, he conseguido que si no colocan ningún arxivo, en este caso fotografía, en el input, nos muestre un error de validación donde nos dice que el campo es vacío y debemos insertar algo, a continuación también he conseguido que me muestre otro mensaje al exceder en la capacidad máxima que está permitida en el servidor para subir archivos, esto lo he conseguido sin añadir ningún tipo de código, sino modificando los parámetros de las funciones antes descritas, en concreto las dos primeras. Pero mi problema es conseguir que me muestre mensaje de error, igual que en estos dos casos, cuando el usuario no sube un archivo del tipo fotografía.

En este momento si un usuario sube un archivo que no es del tipo fotografía, no guarda el archivo, es decir, controlar, parace que controla en tipo de archivo, porque al subir una fotografía, sí la sube y la muestra a continuación en el perfil perfectamente, en caso contrario, continua pero no la sube. Me gustaría saber que parámetro o que debería cambiar para que me mostrase el mensaje de error y no continuase al subir un archivo que no es del tipo fotografía.

Entiéndase, tipo fotografía, como un archivo de extensión jpg, jpeg, png, etc.
Además, decir, cuando me refiero a "continuar", es que no muestra mensaje de error de ningún tipo y guarda los cambios que se han podido hacer en la información, pero si el archivo no era del tipo fotografía, como he dicho antes, no lo sube pero "continua", y no nos dá mensaje de error.

Espero haberme explicado correctamente.

Muchas gracias.
Promedio de valoraciones: -
En respuesta a Albert Sánchez

Re: validar con mensaje si el archivo subido es una fotografía

de Albert Sánchez -
Creo que he encontrado la solución; no había visto esta otra función: save_profile_image, contenida en el archivo lib/gdlib.php. Mirando el código de la misma, he podido comprovar que es ahí donde realiza la validación de que sea una fotografía, en la última opción del case hace un default: unlink($originalfile), esto significa que borra el archivo y continúa, así que deberé símplemente añadir en este case el notify que quiera que me muestre y que no continúe.

Si estoy errado en mis conclusiones, rectificaría con gusto con sus mensajes.

Muchas Gracias a todos.
En respuesta a Albert Sánchez

Re: validar con mensaje si el archivo subido es una fotografía

de Albert Sánchez -
Me voy contestando yo sólo je! No lo he conseguido solucionar, si mirais el archivo antes nombrado, allí comprueba que sea un tipo imagen, pero le pongo que de un notice al pasar por el default y nada, no dá notice, ni con un echo ni nadika.. sería de mi interés que alguien me dijese si sabe algo o una posible solución, yo creo que mediante los parámetros se ha de poder solucionar, pero hice muchas pruebas ya, y no consigo que no "continue" cuando el archivo no es una foto, continua y no guarda el archivo pasado, claro está, no es una foto y no lo guarda.

Muchas gracias.
En respuesta a Albert Sánchez

Re: validar con mensaje si el archivo subido es una fotografía

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
Hola Albert,

podría ser que si que haga el notice pero, justo después hace un redirect y no te dá tiempo a verlo o algo así?

Prueba a poner un "die" o similar para ver si, efectivamente, entras a ese "case default". También puedes probar a lanzar un error ("mensaje"); ya que este visualiza el error y detiene la ejecución.

Ciao sonrisa
En respuesta a Eloy Lafuente (stronk7)

Re: validar con mensaje si el archivo subido es una fotografía

de Albert Sánchez -
Ná... ese no era el problema, ya lo he solucionado totalmente, ahora estoy liado con algo parecido al dar de alta son autenticación o por email, pero lo tengo casi. Si alguien quiere saber algo sobre esto que no dude en preguntar, porqué la cosa no es poca, son muchas funciones que entran en juego... y mediante los parámetros de las funciones es posible controlarlo casi todo, aunque tuve que hacer muchas pruebas para entender cada una de las opciones...

Albert.