Foros del Web » Programando para Internet » PHP »

Sacar imagen del cache

Estas en el tema de Sacar imagen del cache en el foro de PHP en Foros del Web. Hola a todos la situación es la siguiente, tengo tres imágenes (que se llaman siempre igual) que uso para un menu. El cliente por mantenimiento ...
  #1 (permalink)  
Antiguo 06/05/2003, 12:05
 
Fecha de Ingreso: enero-2002
Ubicación: Barcelona
Mensajes: 279
Antigüedad: 15 años, 11 meses
Puntos: 1
Sacar imagen del cache

Hola a todos

la situación es la siguiente, tengo tres imágenes (que se llaman siempre igual) que uso para un menu.

El cliente por mantenimiento debe poder cambiar estas imágenes.
Hasta aqui todo controlado.

El problema, es que al reemplazar la imagen no la visualizo a menos que haga un reload de la página, me imagino que al llamarse igual la imagen queda en caché.

¿¿Como puedo sacarla del caché para poder visualizar la imagen inmediatamente después de subirla al server??


saludos
__________________
Sataca - La Retícula
www.lareticula.com
  #2 (permalink)  
Antiguo 06/05/2003, 12:12
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Es imposible sacar la imagen del caché. Lo único que se puede hacer es evitar que se guarde ahi.

Para evitar que se guarde ahí, utiliza las cabeceras adecuadas. La FAQ 32 de estos foros te ayudará.
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 06/05/2003, 12:37
 
Fecha de Ingreso: enero-2002
Ubicación: Barcelona
Mensajes: 279
Antigüedad: 15 años, 11 meses
Puntos: 1
y no puedo indicarle mediante PHP que haga ese reload??
__________________
Sataca - La Retícula
www.lareticula.com
  #4 (permalink)  
Antiguo 06/05/2003, 12:50
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años, 1 mes
Puntos: 68
Hay un truco que siempre aplico cuando es necesario, y que a mi me funciona mejor que las cabeceras "Adecuadas".

la idea es poner algo como :

<img src="tuimagen.php?<?=time()?>" border="0">

De esa manera, la URL de tu imagen queda como:

tuimagen.php?10209102198439 ( o algo asi )
Y cada vez que cargues la página, ese numero será distinto, por lo que el navegador siempre creerá que es una imagen nueva, y como no la tiene en el caché, entonces no la carga y la baja nuevamente.

Saludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #5 (permalink)  
Antiguo 06/05/2003, 13:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
sataca .. lee esa FAQ que te recomendó Cain ..

Justamente el hecho de decirle al navegador que NO se guarde esa imagen el la "caché" obligará al navegador a "recargar" esa imagen siempre ...

Cualquier otra solución pasaría de la mano de que te leas el protocolo HTTP (www.rfc.net lo puedes ver)

PHP no controla nada sobre el navegador .. actua en el SERVIDOR .. Como mucho PHP te pone a tu disposición funciones como header() para que le envies cabeceras al navegador, pero lo que le "envies" es cosa del protocolo HTTP en este caso.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 06/05/2003, 13:14
 
Fecha de Ingreso: enero-2002
Ubicación: Barcelona
Mensajes: 279
Antigüedad: 15 años, 11 meses
Puntos: 1
ok, pero....
<img src="ver_imagen.php?imagen=nombre_imagen.jpg">

Claro que nos hace falta tener el script "ver_imagen.php", debería contener esto:



PHP:--------------------------------------------------------------------------------

<?php

// Directorio donde buscaremos la imagen
$camino = "./";

// Cabecera de imagen
header("Content-Type: image/jpeg"); // En este caso es jpeg,
// pero se podría cambiar por la que nos interese.

// Cabeceras de NO CACHE
header( "Expires: Mon, 20 Dec 1998 01:00:00 GMT" );
header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );
header( "Cache-Control: no-cache, must-revalidate" );
header( "Pragma: no-cache" );

// Leemos la imágen
@readfile($camino.$_GET['imagen']);

?>

Esto es lo que ponen las faqs. Pero no va porque intentan coger la imagen: <img src="ver_imagen.php?imagen=nombre_imagen.jpg">

No se como llamarlo para que coja lo que debe devo0lver ver_imagen.php

¿me explico?
__________________
Sataca - La Retícula
www.lareticula.com
  #7 (permalink)  
Antiguo 06/05/2003, 13:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
A ver ..

Como se llama tu actual imagen?

cosa.jpg .. por ejemplo, OK?

Y como lo insertas en tu HTML comun?
Código PHP:
<img src="coas.jpg"
OK?

Pues usando PHP por médio para q meta esas cabeceras tan solo tienes que llamar a tus imagenes que no quieras que el navegador las guarde en su cache via PHP y ese script:

Código PHP:
<img src="ver_imagen.php?imagen=cosa.jpg"
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 06:45.