// speisekarte
linux (3)
so generelles (7)
politisches (8)
tech (4)
gefunden (1)
netz (2)
// neues
windows vista und webdav
ein herrlicher lenticularis
ie6 - cache-control und nicht gefundene daten
do backups
Weltanschauung
php variablen vergleich
// archiv
// statistik
besuche: 349634
im moment: 0
hosts: 69945
seiten: 481942
besuchszeit: 16305h:32m
// leo auf spanish
LEO, das Deutsch-Englische Wörterbuch kennt ja fast jeder. Und sowas wie LEO als Deutsch-Spanisches Wörterbuch nennt sich dix.osola.com.
// /dev/nerd ...
ie6 - cache-control und nicht gefundene daten
meine erkenntnis des tages:
manchmal will man per php files dem besucher nur unter gewissen bedingungen zur verfügung stellen. z.b. wenn ich ein file
/home/myaccount/test.pdf aufs internet stellen will, ohne es im http-baum zu platzieren. z.b. so:
$file = '/home/myaccount/test.pdf';
$f = fopen($file, 'r');
$data = fread($f,filesize($file);
und um es nun auszugeben, gibt man paar headers mit:
header('Content-Disposition: attachment; filename="test.pdf"');
header("Content-type: application/pdf";);
echo $data;
aber damit kanns ein ganz dolles problem geben. und zwar liefert php offensichtlich standardmässig als cache-control zeug wie no-cache mit. und wenn jemand ein eben solches file öffnen und in einem externen viewer anschauen will (z.b. acrobat), dann geht das mit firefox prima. bei IE kriegt man nur gemecker von wegen: no valid file found oder ähnlich.
offensichtlich speichert der IE das angewählte file nicht im cache, öffnet aber die helper application mit dem pfad für ein file im cache.
dem verhalten kann natürlich einfach einhalt geboten werden, indem man selbst die kontrolle über das caching übernimmt. einfach bei den header ausgaben noch folgende zeile einfügen:
header("Cache-Control: public, max-age=600, must-revalidate");
damit wird das file für 600 sekunden gecacht und kann von der helper application geöffnet werden ...
Kommentare
Guter Tip!Danke,
you made my day ;)
invalid timestamp | Chris

