Foros del Web » Programando para Internet » PHP »

Upload de imágenes

Estas en el tema de Upload de imágenes en el foro de PHP en Foros del Web. Hola, Tengo una función que comprueba el tipo, el peso y las medidas de una imágen a subir. Código PHP: function  check_imagen_aleatoria (){     global  $postvars ...
  #1 (permalink)  
Antiguo 13/05/2009, 05:14
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 7
Upload de imágenes

Hola,

Tengo una función que comprueba el tipo, el peso y las medidas de una imágen a subir.

Código PHP:
function check_imagen_aleatoria(){
    global 
$postvars$referer;
        
    
$imagen_x_temp getimagesize($postvars['imagen-file']);
    
$imagen_y_temp getimagesize($postvars['imagen-file']);
        
    
$imagen_x $imagen_x_temp[0];
    
$imagen_y $imagen_y_temp[1];
            
    if(
$postvars['imagen-file'] == ""){echo "<script>alert('Por favor, seleccione la imagen a subir.');</script>";}else{
    if(!(
$postvars['imagen-type'] == $postvars['type-ok'])){echo "<script>alert('El único tipo de imagen aceptado es JPEG.')</script>";}else{
    if(
$postvars['imagen-size'] > $postvars['max-size']){echo "<script>alert('El peso del archivo no puede superar los 512 KBytes.')</script>";}else{
    if(
$imagen_x $postvars['max-width-imgrandom']){echo "<script>alert('El ancho de la imagen supera lo permitido (230 pixeles)')</script>";}else{
    if(
$imagen_y $postvars['max-height-imgrandom']){echo "<script>alert('El alto de la imagen supera lo permitido (120 pixeles)')</script>";}else{
        return 
true;
    }}}}}

Y el error está en que si subo la imagen (correcta en cuanto a formato, tamaño, y medidas se refiere) a través de Mozilla Firefox me la cuelga en el servidor. PERO, si uso Internet explorer para subirla me devuelve el error de que el único tipo de archivo aceptado es JPEG.

Puto internet explorer...
¿Sabéis qué puede ser?
  #2 (permalink)  
Antiguo 13/05/2009, 05:20
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 14
Respuesta: Upload de imágenes

El código PHP no se ejecuta en tu máquina y por tanto tiene que dar igual que uses IE, Firefox o algún otro. ¿Subes la misma imagen en ambos navegadores? No puedo decirte mucho de tu código porque nos falta saber cómo defines $postvars, pero dudo que en este caso sea problema del navegador.
  #3 (permalink)  
Antiguo 13/05/2009, 05:23
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 7
Respuesta: Upload de imágenes

Hola Ryo,

Código $postvars:
Ver original
  1. $postvars = array(
  2.     "imagen-file" => $_FILES['imagen']['tmp_name'],
  3.     "imagen-type" => $_FILES['imagen']['type'],
  4.     "type-ok" => "image/jpeg",
  5.     "imagen-size" => $_FILES['imagen']['size'],
  6.     "max-size" => "524288", // 512 Kbytes =>  0.5 MB
  7.     "max-width" => "700",
  8.     "max-height" => "500",
  9. );

Así es cómo defino $postvars. Y como te decía, cuando cuelgo la imagen desde Firefox, si que la sube bien. El error me lo devuelve cuando lo hago desde Internet Explorer. Raro, ¿eh?..
  #4 (permalink)  
Antiguo 13/05/2009, 05:25
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 14
Respuesta: Upload de imágenes

Como el problema está en esta condición:
Código PHP:
if(!($postvars['imagen-type'] == $postvars['type-ok'])) 
Y conocemos el valor de $postvars['type-ok'], prueba a hacer un echo de $postvars['imagen-type'] para ver qué escribe cuando da error.
  #5 (permalink)  
Antiguo 13/05/2009, 05:32
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 7
Respuesta: Upload de imágenes

Hola,

desde Mozilla Firefox: image/jpeg

desde Internet Explorer (me acabo de quedar loco): image/pjpeg

:s tress:
  #6 (permalink)  
Antiguo 13/05/2009, 05:36
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 14
Respuesta: Upload de imágenes

No conocía ese problema de IE, me acabo de quedar tan loco como tú, aunque ya imaginaba que los tiros irían por ahí y por eso te he dicho que hicieras el echo. Pero al menos sabes qué hacer para solucionar tu problema: reemplazar ese mime por el normal, dar ese mime también por bueno en tu condición...
  #7 (permalink)  
Antiguo 13/05/2009, 05:37
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 7
Respuesta: Upload de imágenes

Hola,

Gracias Ryo.
Lo bueno de Internet Explorer es que nunca deja de sorprendernos xD.
  #8 (permalink)  
Antiguo 13/05/2009, 05:42
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 14
Respuesta: Upload de imágenes

Sí, ¿verdad? :P

Puedes usar esta solución que he visto en este tema de estos mismos foros, que me ha parecido bastante elegante:
Código PHP:
if(strpos($_FILES['foto']['type'], 'jpeg')) 
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 19:02.