Problema Librería GD [.php]

eXtreM3

Buenas! Estoy haciendo una especie de galería privada, donde los usuarios pueden crear sus galerías de fotos, establecerles una contraseña, y permitir el acceso a aquellos visitantes que la posean.

He utilizado una estructura de archivos, pienso, bastante sólida, pero tengo un problema.

Para generar las vistas en miniatura de las imágenes que sube el usuario, utilizo la librería GD de php. El problema reside en que tengo una función para que convierta las miniaturas, y sólo me interesa que sea con archivos en jpg (jpg, jpeg, JPG y JPEG). La estructura de la página de subida de imágenes es esta:


-> Textbox nombre de la foto
-> Textbox ruta local foto + botón Examinar (para buscarla)
-> Botón Subir
-> Imágenes ya subidas a dicha galería.


Lo malo es que si le pasas una imagen png o gif, logicamente peta porque mi función no trabaja con dichos archivos. Y diréis, vale, pues contrólalo mediante la entrada de datos. Así lo hago..., si la imagen no es válida, no realiza la conversión y me saca la capa del mensajito correctamente.

El problema es que si el archivo original por ejemplo se llama foto.gif, le cambias el nombre y la extensión a foto.jpg, salta bien mi control de entrada de datos (porque es jpg), pero claro luego a la hora de hacer la miniatura pues la librería no es tonta y no es capaz de realizar la acción, con lo que peta.

He estado buscando y no he encontrado cómo conocer el tipo real de un archivo (independientemente de su extensión, que es muy facil de obtener).

Creo que no hace falta que os muestre el código, lo he explicado todo bastante limpio. Aún así si alguien lo necesita que lo pida y lo posteo.

Graciassss (por lo menos x leerme xD)

Edito: por cierto, ya tengo toda la galería acabada, en cuanto solucione este problema lo podré colgar jejeje.

Edito 2: he editado un poco el thread con respecto al inicial, ultimo cambio 26/10/2009 a las 13:21

erdanblo

Con exif-imagetype() te devuelve el tipo MIME. Me imagino que usaras getimagesize(), uno de los elementos del array que devuelve es el tipo MIME (para no tener que usar la otra función).

eXtreM3

Usaba el getimagesize solo para obtener el ancho y el alto de la foto xD, me he dado cuenta ahora que lo has mencionado que tiene un posible tercer parámetro que te devuelve el tipo de archivo que es, 2 = jpg y 3 = png jejeje, me viene perfecto! Espero que me sirva :P, thanks!

NeB1

Felicitaciones por esforzarte en crear una libreria tan robusta.

eXtreM3

#4 ¿?

NeB1

xDDD joer esperaba un ":D" . Nada simplemente que le has pegado muchas vueltas a como te pueden rebentar la libreria. Esperar que alguien le cambie la extensión del archivo a mano y tal, no sé XD

eXtreM3

Ah xD, creía que lo habias dixo irónicamente... lo siento entonces :D

Hombre, es que no quiero que me la peten por ningún lao. Por cierto me funcionó utilizar el 3er valor del array del getimagesize(), así compruebo el tipo exacto de archivo ^^

Ya tengo todo listo, me falta una pequeña cosa por pulir y quedará way para sacar la beta a relucir :D

Usuarios habituales

  • eXtreM3
  • NeB1
  • erdanblo