PHP - PHP y Explorer

 
Vista:

PHP y Explorer

Publicado por jokings80 (7 intervenciones) el 25/12/2011 12:29:33
Hola,

Espero que me podáis ayudar con el siguiente problema.

Tengo una página php donde hay una imagen. Esta imagen puede ser cambiada por el usuario cuando lo desee, subiendo otra en su lugar. Para no mantener en el servidor imágenes que no se usan, cada vez que se sube una imagen, se elimina la que hay y la nueva se nombra con el mismo nombre que la que había. De esta forma, sólo se sustituye la imagen y no se toca el código.

El problema es esto funciona con cualquier navegador, excepto con... Explorer :S Sospecho que Internet Explorer lo que hace es descargar la imagen del servidor al cargar la página y al recargarla, comprueba el nombre de la imagen y si no ha cambiado no recarga la imagen. El problema que tengo es que la imagen es distinta, pero el nombre es igual, por lo que siempre carga la imagen antigua que ya no existe en el servidor. Si se pulsa el icono de actualizar del navegador, sí que se muestra la nueva imagen. Supongo que al actualiar vuelve a descargar la imagen, pero necesito que cuando se pulsa el botón "Guardar imagen" de la página y se redirecciona a una página que ya había sido cargada antes, la imagen se actualice sin que el usuario tenga que ir a pulsar el icono actualizar del navegador.

Se os ocurre alguna solución??

Gracias por todo!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Solución a la cache de IE para las imagenes

Publicado por xve (6935 intervenciones) el 25/12/2011 13:15:51
Hola jokings80, es exactamente lo que dices, IE guarda una cache, y si tiene el mismo nombre, no la cambia. Para ello, hay una simple solución, que es añadirle un parámetro a la imagen, que ese parámetro sea la fecha del sistema, de esta manera, para IE siempre sera una imagen diferente... muestro un ejemplo para que se vea claro...
1
<img src='imagen.jpg?<?php echo uniqid();?>'>

De esta manera, la imagen es la misma, pero se pasa un parámetro, que para el navegador, es una imagen distinta.

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Solución a la cache de IE para las imagenes

Publicado por jokings80 (7 intervenciones) el 26/12/2011 11:19:12
Hola,

Muchas gracias por la ayuda, pero sigo sin poder soluiconarlo :(

He probado haciendo:

<img src='imagen.jpg?<?php echo uniqid();?>'>

pero no carga ninguna imagen. Imagino que ya la primera la considera obsoleta.

También he probado refrescando la caché del navegador:

header ("Expires: Thu, 27 Mar 1980 23:59:00 GMT"); //la pagina expira en una fecha pasada
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); //ultima actualizacion ahora cuando la cargamos
header ("Cache-Control: no-cache, must-revalidate"); //no guardar en CACHE
header ("Pragma: no-cache");

y

<meta http-equiv="Expires" content="0">
<meta http-equiv="Last-Modified" content="0">
<meta http-equiv="Cache-Control" content="no-cache, mustrevalidate">
<meta http-equiv="Pragma" content="no-cache">

pero no funicona.

Creando un .htaccess tampoco funcionan. No carga ninguna imagen.

<FilesMatch "\.(gif|png|jpg|jpeg|bmp)$">
Header unset Cache-Control
Header unset Expires
Header unset Last-Modified
FileETag None
Header unset Pragma
</FilesMatch>

Se os ocurre alguna otra idea... :(

Gracias por la ayuda!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar