Foros del Web » Programando para Internet » PHP »

Reemplaza imagen desde firefox pero no desde explorer

Estas en el tema de Reemplaza imagen desde firefox pero no desde explorer en el foro de PHP en Foros del Web. Hola amigos. Tengo un código para reemplazar una imagen y me funciona perfectamente en firefox pero no en explorer. Este es el código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 13/06/2011, 07:37
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Pregunta Reemplaza imagen desde firefox pero no desde explorer

Hola amigos. Tengo un código para reemplazar una imagen y me funciona perfectamente en firefox pero no en explorer. Este es el código:

Código PHP:
Ver original
  1. include ('funciones.php');
  2.  
  3. $foto_nombre = $_POST['foto_nombre'];
  4. $mini_nombre = $_POST['mini_nombre'];
  5.  
  6. $ban=0;
  7.  $tamano = $_FILES["foto"]['size'];
  8. // Leemos el tamaño del fichero
  9. $tamaño_max="50000000000";
  10. // Tamaño maximo permitido
  11. if( $tamano < $tamaño_max){ // Comprobamos el tamaño
  12.   $sep=explode('image/',$_FILES["foto"]["type"]); // Separamos image/
  13.   $tipo=$sep[1]; // Obtenemos el tipo de imagen que es
  14.  
  15.   if($tipo == "gif" || $tipo == "jpg" || $tipo == "bmp"|| $tipo == "png"|| $tipo == "jpeg"){
  16.     $tipo ='jpg';
  17. // Si el tipo de imagen a subir es el mismo de los permitidos, colocamos una bandera de aceptacion.
  18.     $ban1=$ban1+1;
  19.     }else{
  20.      echo "el tipo de archivo no es de los permitidos.<br>"; // no es archivo permitido
  21.     }
  22.     }else{
  23.    echo "el archivo supera el peso permitido.<br>";    // sobrepasa el tamaño
  24.     }
  25.    
  26. $destino='images/galeria/fotos/';
  27.  
  28. // obtenemos los resultados de la validacion y si esta correcto, guardamos las imagenes
  29.   if ($ban1 == 1){
  30.     if(!is_dir($destino)){
  31.         @mkdir($destino);       // si no existe el directorio lo creamos
  32.     }
  33.       move_uploaded_file ( $_FILES [ 'foto' ][ 'tmp_name' ], $destino . '/' .$foto_nombre.'.'.$tipo);  
  34.         }else{
  35.               //aqui lo puedes redireccionar ya qu no cumple los parametros
  36.        }
  37.  
  38.  
  39. //MINIATURA
  40. $ban2=0;
  41.  $tamano2 = $_FILES["miniatura"]['size'];
  42. // Leemos el tamaño del fichero
  43. $tamaño_max2="50000000000";
  44. // Tamaño maximo permitido
  45. if( $tamano2 < $tamaño_max2){ // Comprovamos el tamaño
  46.   $sep2=explode('image/',$_FILES["miniatura"]["type"]); // Separamos image/
  47.   $tipo1=$sep2[1]; // Optenemos el tipo de imagen que es
  48.  
  49.   if($tipo1 == "gif" || $tipo1 == "jpg" || $tipo1 == "bmp"|| $tipo1 == "png"|| $tipo1 == "jpeg"){
  50.     $tipo1 ='jpg';
  51. // Si el tipo de imagen a subir es el mismo de los permitidos, colocamos una bandera de aceptacion.
  52.     $ban2=$ban2+1;
  53.     }else{
  54.      echo "el tipo de archivo no es de los permitidos.<br>"; // no es archivo permitido
  55.     }
  56.     }else{
  57.      echo "el archivo supera el peso permitido.<br>";    // sobrepasa el tamaño
  58.     }
  59. $destino2='images/galeria/thumbnails';
  60. // obtenemos los resultados de la validacion y si esta correcto, guardamos las imagenes
  61.   if ($ban2 == 1){
  62.     if(!is_dir($destino2)){
  63.         @mkdir($destino2);       // si no existe el directorio lo creamos
  64.     }
  65.       move_uploaded_file ( $_FILES [ 'miniatura' ][ 'tmp_name' ], $destino2 . '/' .$mini_nombre.'.'.$tipo1);  
  66.         }else{
  67.               //aqui lo puedes redireccionar ya qu no cumple los parametros
  68.        }
  69.  
  70. header("Location:galer1.php");

En Firefox hace el update perfectamente

En explorer me da este error:

el tipo de archivo no es de los permitidos.
el tipo de archivo no es de los permitidos.

Y no debe ser porque estoy subiendo fotos con el formato permitido (.jpg)

Por qué pasa esto???

Gracias
__________________
Caminando con el corazón partío
  #2 (permalink)  
Antiguo 13/06/2011, 07:48
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Reemplaza imagen desde firefox pero no desde explorer

hace esto
var_dump($_FILES);
  #3 (permalink)  
Antiguo 13/06/2011, 07:59
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Reemplaza imagen desde firefox pero no desde explorer

el var_dump me da lo siguiente:

array(2) { ["foto"]=> array(5) { ["name"]=> string(19) "chica de los 60.jpg" ["type"]=> string(11) "image/pjpeg" ["tmp_name"]=> string(26) "C:\WINDOWS\TEMP\phpCC7.tmp" ["error"]=> int(0) ["size"]=> int(29645) } ["miniatura"]=> array(5) { ["name"]=> string(9) "sound.png" ["type"]=> string(11) "image/x-png" ["tmp_name"]=> string(26) "C:\WINDOWS\TEMP\phpCC8.tmp" ["error"]=> int(0) ["size"]=> int(3332) } }
__________________
Caminando con el corazón partío
  #4 (permalink)  
Antiguo 13/06/2011, 08:09
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Reemplaza imagen desde firefox pero no desde explorer

bien, cuando vos haces esto:

Código PHP:
Ver original
  1. if( $tamano < $tamaño_max){ // Comprobamos el tamaño
  2.   $sep=explode('image/',$_FILES["foto"]["type"]); // Separamos image/
  3.   $tipo=$sep[1]; // Obtenemos el tipo de imagen que es
procesas esto:
["type"]=> string(11) "image/pjpeg"
y lo mas seguro que el resultado es este:
pjpeg

tendrias que cambiar esto, es horrible como lo haces! (es un chiste he)
  #5 (permalink)  
Antiguo 13/06/2011, 08:11
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Reemplaza imagen desde firefox pero no desde explorer

Reemplazar = grabar nueva foto con el mismo nombre?

Esto no es problema de PHP, sino del navegador que almacena la anterior en cache, bastaria con actualizar la pagina para ver la imagen nueva.
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 13/06/2011, 08:57
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Reemplaza imagen desde firefox pero no desde explorer

Gracias a ambos, pero no se como solucionarlo. Qué debo modificar para que lo haga bien? Por qué las coloca asi: image/pjpeg y image/x-png?
__________________
Caminando con el corazón partío
  #7 (permalink)  
Antiguo 13/06/2011, 09:02
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Reemplaza imagen desde firefox pero no desde explorer

Cita:
Iniciado por kimmy Ver Mensaje
Gracias a ambos, pero no se como solucionarlo. Qué debo modificar para que lo haga bien? Por qué las coloca asi: image/pjpeg y image/x-png?
hay muchas formas, pero tenes que pensar vos
te doy una pista:
obtene las ultimas 3 letras y asi tu if va a tener mas sentido, no te parece?
  #8 (permalink)  
Antiguo 13/06/2011, 10:57
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Reemplaza imagen desde firefox pero no desde explorer

gracias intentaré arreglarlo.
__________________
Caminando con el corazón partío
  #9 (permalink)  
Antiguo 13/06/2011, 14:12
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Reemplaza imagen desde firefox pero no desde explorer

He intentado arreglarlo pero nada. Saben que este código lo tomé de un aporte que dieron aqui.

En este enlace http://www.forosdelweb.com/f18/aport...on-php-568511/

Veo que a muchos les pasó lo mismo que a mi pero nadie dio respuesta al problema.

Por favor de verdad sería importante tanto para mi como para muchos que se quedaron con esas dudas que quien pueda saber que pasa con el código pueda ayudarnos.

Y no es por buscar facilidades, yo tengo varios días leyendo y leyendo y probando y probando y no se que mas hacer para arreglarlo.

Obviamente los que saben mucho aqui tienen super conocimientos y muchos de nosotros no, por ello pedimos ayuda para tratar de entender y de hacerlo porque a veces leemos mucho pero no logramos llevarlo a la práctica.

Gracias.
__________________
Caminando con el corazón partío
  #10 (permalink)  
Antiguo 13/06/2011, 18:56
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Reemplaza imagen desde firefox pero no desde explorer

Amigos, probé poner el código sin ninguna validación de tamaño y tipo de imagen:

Código PHP:
Ver original
  1. include ('funciones.php');
  2.  
  3. $foto_nombre = $_POST['foto_nombre'];
  4. $mini_nombre = $_POST['mini_nombre'];
  5.  
  6. //FOTO GRANDE
  7. $tipo ='jpg';
  8. $destino='../../images/galeria1/large';
  9. move_uploaded_file ( $_FILES [ 'foto' ][ 'tmp_name' ], $destino . '/' .$foto_nombre.'.'.$tipo);  
  10.      
  11.  
  12. //MINIATURA
  13. $tipo1 ='jpg';
  14. $destino2='../../images/galeria1/thumbnails';
  15. move_uploaded_file ( $_FILES [ 'miniatura' ][ 'tmp_name' ], $destino2 . '/' .$mini_nombre.'.'.$tipo1);

Esto me la sube la primera vez y luego no la sube mas.

le hice un var_dump y me salio esto:

array(2) { ["foto"]=> array(5) { ["name"]=> string(11) "sample1.jpg" ["type"]=> string(11) "image/pjpeg" ["tmp_name"]=> string(27) "C:\WINDOWS\TEMP\php5D9D.tmp" ["error"]=> int(0) ["size"]=> int(19905) } ["miniatura"]=> array(5) { ["name"]=> string(11) "sample1.jpg" ["type"]=> string(11) "image/x-png" ["tmp_name"]=> string(27) "C:\WINDOWS\TEMP\php5D9E.tmp" ["error"]=> int(0) ["size"]=> int(47100) } }

No entiendo este error...

Por favor pueden ayudarme, gracias.
__________________
Caminando con el corazón partío
  #11 (permalink)  
Antiguo 13/06/2011, 19:23
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Reemplaza imagen desde firefox pero no desde explorer

http://www.marcofbb.com.ar/upload-de-imagenes/

o

agrégale mas $tipo1 al if :)

if($tipo1 == "gif" || $tipo1 == "jpg" || $tipo1 == "bmp"|| $tipo1 == "png"|| $tipo1 == "jpeg" || $tipo1 == "x-png" || $tipo1 == "pjpg"){

saludos
  #12 (permalink)  
Antiguo 13/06/2011, 20:05
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Reemplaza imagen desde firefox pero no desde explorer

Gracias marcofbb, voy a probar lo que me sugieres. Antes visite tu sitio web y descargue el upload de imagenes pero me enredé para implementarlo.
__________________
Caminando con el corazón partío
  #13 (permalink)  
Antiguo 13/06/2011, 21:06
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Reemplaza imagen desde firefox pero no desde explorer

Al margen de lo que te han sugerido, revise un poco tu codigo:

Código PHP:
Ver original
  1. if($tipo == "gif" || $tipo == "jpg" || $tipo == "bmp"|| $tipo == "png"|| $tipo == "jpeg"){
  2.     $tipo ='jpg'; // No importa la extension de la imagen, siempre asignas jpg
  3. /* ... ...  */
  4.     // Despues, mas abajo simplemente mueves el archivo a la carpeta destino
  5.     // Simplemente cambias la extension... pero sin convertir!
  6.      move_uploaded_file ( $_FILES [ 'foto' ][ 'tmp_name' ], $destino . '/' .$foto_nombre.'.'.$tipo);

Entonces, si subes un png y lo renombras a jpg, creo que es normal que no se muestre la imagen.
__________________
- León, Guanajuato
- GV-Foto
  #14 (permalink)  
Antiguo 13/06/2011, 21:41
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Reemplaza imagen desde firefox pero no desde explorer

Mil Gracias Triby por tu atención y amabilidad en todo momento. Probé varios códigos y después de muchos tropiezos, me di cuenta que lo que me habían sugerido acerca de colocar más tipos de extensiones era lo que servía. Le agregue:

$tipo == "gif" || $tipo == "png" || $tipo == "jpeg" || $tipo == "bmp" || $tipo == "pjpg" || $tipo == "pjpeg" || $tipo == "x-png"

y asi si funcionó perfectamente.

Gracias a todos por sus consejos...

__________________
Caminando con el corazón partío

Etiquetas: explorer, firefox
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 00:51.