Cache file pdf [Risolto]

di il
4 risposte

Cache file pdf [Risolto]

Ciao a tutti
Sono nuova nel forum
Vi spiego il mio problema: ho una pagina web che apre un file PDF, una locandina che viene aggiornata settimanalmente, è quindi necessario
affinché gli utenti non "rivedano" la vecchia locandina, che questa non venga messa in cache. Credevo di aver risolto come nell'esempio sotto
ma.... mentre per firefox e ie funziona .... per chrome e opera mi visualizza la copia in cache e solo facendo aggiornare il browser vedo la
nuova locandina.

<?php
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Data del passato
header("Pragma: no-cache");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
?>
<?php
$file = "Locandina.pdf";
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename='.$file);
readfile($file);
?>



Ovviamente, siccome la fortuna e cieca ma la sfiga ci vede molto bene, un utente che ha bisogno di tale locandina usa chrome (potete immaginarvi
il casino che a creato perché costretto a far aggiornare il browser)
Ho cercato altre soluzioni (meta in html) ma sto sbattendo la testa al muro....
Qualcuno sa aiutarmi?
Grazie

4 Risposte

  • Re: Cache file pdf [Risolto]

    Ciao ragionare con il cache dei vari browser è un casino.

    Prova a generare un parametro di querystring casuale (magari con una guid) in modo che il browser non usi la cache.

    Esempio mettiamo che la pagina che restituisce il pdf sia getpdp.php
    Fai in modo che ad ogni chiamata sia diversa quindi:
    getphp.php?pid=asas-sss234234-asasd3-3333
    getphp.php?pid=a444-ssswww234-asggsd3-3666

    Ovviamente la querystring a te non servirà a nulla ma il browser lo vedrà come un'altra pagina.

    Visto comunque che fai scaricare un file pdf potresti provare a variare quello di nome, non sono sicuro che funzioni ma prova lo stesso:

    $file = "Locandina.pdf";
    lo fai diventare:
    $file = "Locandina.pdf" . "?pid=" . $guid;

    Fammi sapere se risolvi
  • Re: Cache file pdf [Risolto]

    Grazie Toki
    Oggi non posso ma al più presto mi metto al lavoro
    Poi ti faccio sapere
    Ciao
  • Re: Cache file pdf [Risolto]

    Toki ero troppo curiosa per non provare la soluzione che mi hai proposto
    Ho messo in $giud l'ora (date("His");)
    Tutto ok
    Grazie soluzione intelligente e semplice
    Ciao
  • Re: Cache file pdf [Risolto]

    Di nulla
Devi accedere o registrarti per scrivere nel forum
4 risposte