Download-Fehler im IE 6
rig
- https
Hallo zusammen,
ich biete eine serverseitig generierte Textdatei zum Download an. Diese Datei wird von den Usern i.d.R. aber nicht gespeichert sondern direkt geöffnet. Im FireFox unter Windows/Linux klappt das super, nur der IE (Version 6.0.2800.xxx) bringt folgende Fehlermeldung:
Wenn die Datei zuerst gespeichert wird kann sie danach ohne Probleme geöffnet werden. Ich nutze serverseitig den selben Algorithmus um eine MS-Excel Datei zu generieren. Die läßt sich im IE ohne Probleme öffnen.
Die HTTP-Headers zum obigen Download sehen wie folgt aus (ermittelt mit "Live HTTP Headers" im FireFox):
HTTP/1.x 200 OK
Date: Mon, 05 Mar 2007 12:53:41 GMT
Server: xxx
Expires: Sat, 6 May 1995 12:00:00 GMT
Pragma: no-cache
content-disposition: attachment; filename="Inhalt.txt"
Last-Modified: Mon, 05 Mar 2007 01:53:41 GMT
X-DB-Content-length: 330
Content-Type: text/plain; charset=WINDOWS-1252
Cache-Control: no-store, no-cache, must-revalidate, proxy-revalidate
Transfer-Encoding: chunked
Proxy-Connection: Keep-Alive
Connection: Keep-Alive
Die Headers bei der oben genannten XLS-Datei sind bis auf den Dateinamen identisch
Hat jemand eine Idee warum der IE Probleme beim Öffnen der Datei hat?
Danke & Gruß
rig
Hallo zusammen,
also wenn ich den MIME-Type auf "application/msword" ändere, ändert sich am Verhalten nichts. Wenn ich den MIME-Type auf "text/plain" belasse und den Dateinamen in "Inhalt.doc" ändere, öffnet der IE die Textdatei ohne meckern mit MS-Word.
*ARGH*
Gruß
rig
Nochmal ich.
Wenn ich serverseitig den Dateinamen in "Inhalt.qqd" ändere (also eine Endung, die Windows nicht kennt), dann kommt der Windows-Dialog "Womit soll ich die Datei öffnen". Und egal was ich hier auswähle (Notepad, MS-Word, WordPad, etc.): Es kommt immer der Fehler, das sie Datei "Inalt[1].qqd" unter "C:\Winnt...\Content.IE5..." nicht gefunden werden kann.
Gruß
rig
Also,
ich denk ich hab das Problem gefunden: Es liegt an dem Angeben "no-cache" und "no-store" im Abschnitt "Cache-Control" vom HTTP Header. Nimmt man diese beiden Angaben heraus, dann wird, wenn der User auf den Link klickt, die Textdatei in Notepad geöffnet.
Das Problem ist nun aber, das ab dem 2. Klick nicht mehr der Server nach der Datei gefragt wird, sondern das entsprechende Pendant verwendet wird, welches sich bereits im Cache befindet. Dieses Problem kann man nun "umgehen", indem man in den Link einen weiteren Dummy-Parameter mit hineingeneriert (z.B. die Anzahl der Millisekunden seit Mitternacht).
Daraus ergibt sich allerdings wiederum ein weiters Problem: Der Ordner "Temporary Internet Files" läuft langsam aber sicher voll, da die Dateien nicht weggeräumt werden. Aber bei den HDD-Größen heutzutage vernachlässige ich diesen Umstand erst einmal. Damit NUR IE-User betroffen sind (*he he he*) frage ich den genutzten Client serverseitig ab und verhindere die Generierung von "no-cache" bzw. "no-store" nur beim IE.
Gruß
rig
PS: Falls jemand auch dieses Problem haben sollte und ggf. eine bessere Lösung hat, bitte posten!