Foros del Web » Programando para Internet » PHP »

Eliminar cache de imagenes

Estas en el tema de Eliminar cache de imagenes en el foro de PHP en Foros del Web. hola compañeros tengo una problemita... cuando voy a actualizar la imagen de un usuario, el sistema valida que el nombre de la imagen sea igual ...
  #1 (permalink)  
Antiguo 29/10/2011, 15:01
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 7 meses
Puntos: 76
Eliminar cache de imagenes

hola compañeros

tengo una problemita...

cuando voy a actualizar la imagen de un usuario, el sistema valida que el nombre de la imagen sea igual al nombre del usuario.

ejemplo:

usuario: imagen_web
nombre de la imagen: imagen_web

en mi directorio ya existe una imagen con nombre imagen_web, el sistema va y la elimina y copia la nueva imagen que tambien se llama imagen_web.

el problema es que cuando recargo el frame no me carga la foto actualizada me sigue mostrando la que tenia, si verifico en el directorio si me subio la imagen.

entonces creeria que es problema de cache, ya probe con esto pero nada:


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


Gracias....
  #2 (permalink)  
Antiguo 29/10/2011, 18:55
Avatar de leonardomontilla  
Fecha de Ingreso: octubre-2011
Ubicación: Caracas
Mensajes: 6
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Eliminar cache de imagenes

Hola,
Si no he comprendido mal, tienes una imagen con un nombre la cual puede cambiar su contenido y debido a la cache no se actualiza la imagen en el navegador. Es necesario cambiar el nombre de la imagen para obligar al navegador a recargarla, es decir, a actualizar la cache.

Como en este caso no deseas cambiar el nombre, un truco es extender el nombre de la imagen utilizando una URL falsa. No sé si ese es el término correcto, pero a continuación lo ilustro:

Imagen original:
<img src="imagen.jpg" ... />

Imagen "forzada":
<img src="imagen.jpg?1234" ... />

El añadirle al nombre de la imagen "?1234" no afecta su representación. El navegador será "engañado" y racargará nuevamente la imagen original (imagen.jpg) Sin embargo, la próxima vez, si deseas que se recargue nuevamente, deberás cambiar el valor después de "?", de lo contrario, el navegador recurrirá nuevamente a la cache. La solución es generar un número aleatorio cada vez que represente la imagen:

Con PHP podrías usar la función rand() para generar un número aleatorio (consulta la documentación) Un ejemplo para un valor aleatorio entre 1 y 1000

echo '<img src="imagen.jpg?' . rand(1,1000) . ' ... />';


Espero haberte ayudado.
  #3 (permalink)  
Antiguo 30/10/2011, 08:41
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 7 meses
Puntos: 76
Respuesta: Eliminar cache de imagenes

Hola leonardomontilla....

muchas gracias, funciono muy bien..... me diste una solucion sencilla y efectiva.


gracias.

Etiquetas: cache, imagenes, usuarios
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 22:16.