Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/10/2009, 04:42
bucky
 
Fecha de Ingreso: octubre-2004
Mensajes: 29
Antigüedad: 19 años, 6 meses
Puntos: 0
Cita:
Iniciado por samu22 Ver Mensaje
con esto no te funciona?
Código php:
Ver original
  1. header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
  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");
En FF sí , pero en IE sigue sin funcionar .

Gracias.

Cita:
Iniciado por bucky Ver Mensaje
Hola,

Una vez más acudo a vosotros en busca de una solución.

El caso es que mediante la clase fpdf creo un fichero pdf al que posteriormente podré visualizarlo/descargarlo. Hasta aquí bien, lo creo y lo veo perfectamente.

El problema surge cuando quiero sobreescribir el pdf en el servidor porque la información de la cual se crea se modifica y se necesita crearlo de nuevo, para que cuando descargue el pdf sea coherente con esta información. Para resolver este problema, cambié en la función Output() de la clase FPDF la cabecera
Código PHP:
header('Cache-Control: private, max-age=0, must-revalidate'); 
por estas
Código PHP:
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Pragma: public'); 
El resultado fue exitoso para FF, descargándome la última versión del pdf, pero no para IE, donde sigo viendo el pdf anterior. Si limpio la caché a mano si que veo la última versión, con lo que internamente todo funciona bien.

¿Existe alguna solución para que funcione también para IE?

Gracias.

Saludos.
SOLUCIÓN:
Ya lo tengo solucionado y creo que el problema era el concepto (como en Airbag)

Los header los utilizaba sólo al crear o al guardar el PDF, pero no al visualizarlo, con lo que creo que los header pierden su sentido.

He creado un archivo php intermedio con algo más o menos así:
Código PHP:
//$filename contiene la url del pdf a mostrar
header('Content-Type: application/pdf');
if(
headers_sent())
    
$this->Error('Some data has already been output, can\'t send PDF file');
else
{
    
header('Content-Disposition: inline; filename="'.$filename.'"');

    
header('Cache-Control: no-store, no-cache, must-revalidate');
    
header('Pragma: public');

    
readfile($filename);

Y es aquí donde tenía que haber poner los header relacionados con la caché desde el principio. Así, cuando se visualiza el pdf, es cuando queda constancia la preferencia de no almacenar el archivo en cache con los header arriba indicados.

Espero que esto le sirva a alguien.

Gracias a samu22 y a karliky por su ayuda.

Saludos

Última edición por GatorV; 07/10/2009 a las 09:28