Foros del Web » Programando para Internet » PHP »

Problema con $_FILES y $HTTP_POST_FILES

Estas en el tema de Problema con $_FILES y $HTTP_POST_FILES en el foro de PHP en Foros del Web. Hola buenas, estoy con un script para introducir imágenes en campos BLOB de una BD MySQL, y tengo un problema con las variables $_FILES y ...
  #1 (permalink)  
Antiguo 01/03/2006, 07:22
Avatar de sir_bowen  
Fecha de Ingreso: junio-2005
Mensajes: 184
Antigüedad: 19 años, 5 meses
Puntos: 0
Exclamación Problema con $_FILES y $HTTP_POST_FILES

Hola buenas,
estoy con un script para introducir imágenes en campos BLOB de una BD MySQL, y tengo un problema con las variables $_FILES y $HTTP_POST_FILES.

Utilizo un formulario (encriptado para enviar archivos de datos), con un input de tipo file y resulta que hay archivos de imagen que son reconocidos y otros que no. En el script donde guardo la imagen, primero compruebo el tipo del archivo enviado, para ver si está entre los típicos archivos de imagen. El caso es que las imágenes que tienen extensión .jpg las coge sin problemas, pero las que tienen .JPG no.

Trabajo en Windows y cuando abro un directorio de imágenes veo que la mayoría son .jpg, pero las descargadas de mi cámara digital son .JPG. Lo digo por dar un ejemplo...

Hay alguna forma de solucionar esto???

Necesito que admita cualquier archivo de imagen...

Muchas gracias

Un saludo
  #2 (permalink)  
Antiguo 02/03/2006, 04:19
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Y el código?... adivinos no hay aunque se puede suponer haces una validación por extención... JPG es diferente de jpg. Quizá como solución fácil podrías usar simplemente strtolower(), pero una validación por extensión no es fiable, mejor hacerlo por el MIME TYPE; consulta las FAQ (12)

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 02/03/2006, 04:52
Avatar de sir_bowen  
Fecha de Ingreso: junio-2005
Mensajes: 184
Antigüedad: 19 años, 5 meses
Puntos: 0
De acuerdo

Si que hago una validación, por MIME TYPE, pero indagando un poco más descubrí que hay algunos archivos .JPG que sí que me los coge....
Ahora sí que me he quedado loco....
Algunos sí, otros no... y por cierto, si guardo algun .gif que tenga zonas transparentes, al hacer el thumbnail las transparencias se vuelven de color negro.
Ya veremos lo que pasa...

Muchas gracias de todas maneras
  #4 (permalink)  
Antiguo 03/03/2006, 01:00
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Cita:
Si que hago una validación, por MIME TYPE, pero indagando un poco más descubrí que hay algunos archivos .JPG que sí que me los coge....
El MIME TYPE de un .jpg puede ser image/jpeg ó image/pjpeg ¿cómo lo haces?.

Cita:
por cierto, si guardo algun .gif que tenga zonas transparentes, al hacer el thumbnail las transparencias se vuelven de color negro.
www.php.net/gd
Cita:
Las versiones de GD anteriores a la GD-1.6 soportan imágenes en formato gif y no soportan png, mientras que las versiones superiores a la GD-1.6 soportan el formato png y no el gif.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 03/03/2006, 02:16
Avatar de sir_bowen  
Fecha de Ingreso: junio-2005
Mensajes: 184
Antigüedad: 19 años, 5 meses
Puntos: 0
Ya está arreglado... compruebo cuatro tipos diferentes: image/jpeg, image/pjpeg, image/gif y image/png.

El problema debe ser algún malware que tenía en el ordenador porque ahora me cargan las imágenes que antes no cogía. De todas maneras... en lugar de meter las imágenes y el thumbnail en campos blob de la BD, he preferido crear directorios temporales con el identificador de la tabla como nombre del directorio, y únicamente guardo en la BD la ruta del archivo y su nombre...
Además a la larga seguro que funciona más rápido... (eso me han asegurado).

Bueno, el tema es que ahora ya consigo subir cualquier archivo. Después comprueba bien el MIME type y según sea, o se guarda o se descarta...

Muchas gracias por la ayuda.

Un saludo
  #6 (permalink)  
Antiguo 03/03/2006, 03:07
Avatar de sir_bowen  
Fecha de Ingreso: junio-2005
Mensajes: 184
Antigüedad: 19 años, 5 meses
Puntos: 0
Hola de nuevo...

Sigo sin poder acabar la puñetera aplicación, pero ahora por otra razón. Al haber creado directorios por cada registro de la tabla, necesitaré eliminarlos cuando el registro sea borrado.
Con rmdir($directorio) no puedo porque no está vacío... y con unlink($directorio) tampoco. Como trabajo bajo Windows no puedo llamar al shell para que me ejecute un rm -rf.

Alguien tiene alguna sugerencia para poder borrar un directorio no vacío??
Aunque sea eliminando los archivos del directorio uno a uno...

Muchas gracias

Un saludo
  #7 (permalink)  
Antiguo 03/03/2006, 03:27
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Tu actual problema no tiene nada que ver con el original... bien merece ser creado un nuevo tema como ya lo hiciste, por favor continua en él.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:07.