par
Calimero » 31 janv. 2012, 07:07
Bonjour,
J'ai conçu une page en php où j'ai insérer un lien vers un fichier PDF.
Le problème est que : si je change le contenu du fichier PDF (qui se trouve dans le serveur WEB), le client (qui utilise un navigateur web sur le réseau) ne vois pas ce changement même s'il clique à nouveau sur le lien. Le navigateur conserve une copie en cache (du fichier PDF) sur le PC du client.
Y a t il une instruction PHP pour qu'à chaque fois que le client clique sur le lien, le navigateur recharge le fichier PDF du serveur sans utiliser le cache.
Merci
Bonjour,
Il est possible que ton client, surtout s'il se trouve sur un réseau d'entreprise, accède au site via un proxy, ce qui peut parfois entraîner des mises en cache indésirables. Idéalement c'est à ce niveau qu'il faudrait agir.
Les headers suivants peuvent (ou pas) répondre à ton besoin :
<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date dans le passé
?>
Si ça ne suffit pas, et/ou que tu n'as pas la possibilité d'agir sur le proxy, plusieurs solutions de contournement existent : accéder au fichier en POST (au lieu de GET), ajouter un paramètre variable dans l'url après le nom de fichier (pour rendre l'url du fichier unique même si son contenu, lui, ne l'est pas), transférer le fichier en HTTPS...
[quote="khouja"]Bonjour,
J'ai conçu une page en php où j'ai insérer un lien vers un fichier PDF.
Le problème est que : si je change le contenu du fichier PDF (qui se trouve dans le serveur WEB), le client (qui utilise un navigateur web sur le réseau) ne vois pas ce changement même s'il clique à nouveau sur le lien. Le navigateur conserve une copie en cache (du fichier PDF) sur le PC du client.
Y a t il une instruction PHP pour qu'à chaque fois que le client clique sur le lien, le navigateur recharge le fichier PDF du serveur sans utiliser le cache.
Merci[/quote]
Bonjour,
Il est possible que ton client, surtout s'il se trouve sur un réseau d'entreprise, accède au site via un proxy, ce qui peut parfois entraîner des mises en cache indésirables. Idéalement c'est à ce niveau qu'il faudrait agir.
Les headers suivants peuvent (ou pas) répondre à ton besoin :
[php]<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date dans le passé
?>[/php]
Si ça ne suffit pas, et/ou que tu n'as pas la possibilité d'agir sur le proxy, plusieurs solutions de contournement existent : accéder au fichier en POST (au lieu de GET), ajouter un paramètre variable dans l'url après le nom de fichier (pour rendre l'url du fichier unique même si son contenu, lui, ne l'est pas), transférer le fichier en HTTPS...