IE-Dateidownload: Datei nicht herunterladbar

Jürgen Auer

Legendäres Mitglied
Vielleicht ging es ja jemandem in den letzten Wochen genauso oder jemand wird in den nächsten Wochen dasselbe Problem haben.


Innerhalb von Server-Daten gab es schon mal unklar in der letzten Woche, eindeutig heute ein merkwürdiges Problem:

Ein Nutzer klickt einen Link an und will eine Exceltabelle herunterladen. Der Link wird auf Code umgelenkt, dieser holt sich die Daten, generiert die Exceltabelle on the fly und schreibt die Datei in den Ausgabestrom. Entsprechender ContentType, ContentLength und ein Content-Disposition - Header mit dem Dateinamen sind gesetzt.


Das funktionierte jahrelang in verschiedenen Browsern.

Nun: Kein Problem im FireFox.

Im IE (Version 7 und Version 8) wird gemeldet:

QUOTE daten.xls von beispiel.server-daten.de kann nicht heruntergeladen werden.

Die Internetsite konnte nicht geöffnet werden. Sie ist entweder nicht verfügbar oder konnte nicht gefunden werden. Versuchen Sie es später erneut.


Im Hintergrund ist dieses Download-Fenster zu sehen (x Prozent von daten.xls von beispiel.server-daten.de abgeschlossen), wo normalerweise dann der Balken läuft, im Vordergrund dieses PopUp.

Die Website ist natürlich da, die Seite mit dem Link läuft ja auch auf demselben Server.

Nach stundenlangem Suchen und Durchprobieren diverser Hinweise, die im Web zu finden waren, schließlich ein Blick auf die globalen http-Header (für die ganze Website gültig):

Diese waren:


QUOTE Cache-control: no-cache
Pragma: no-cache
expires: 0


Alle gelöscht - das Problem verschwand. Den ersten gesetzt, das Problem war da.

Es scheint, als ob Microsoft irgendwann bei einem der letzten Updates (womöglich aus Datenschutzgründen) diesen Cache-control - Header nun schärfer, sehr viel restriktiver interpretiert. Beim Speichern einer Datei speichert der IE die Datei zunächst in einem temporären Verzeichnis und verschiebt sie dann an jene Stelle, die der Nutzer festgelegt hat.

Und dieses temporäre Speichern wird wohl (neu) mit Cache-Control: no-cache unterbunden.


Das Problem scheint auch der PHP-Welt großes Kopfzerbrechen zu bereiten:

http://www.php.net/manual/de/function.header.php#99190

Ein ziemlich ausführlicher und aktueller Hinweis vom 02.08.2010, bei dem unterschiedliche Header in Abhängigkeit vom Clientbrowser ausgegeben werden.

Bei den zu speichernden Exceltabellen dürfte das kein Problem sein, alle Header wegzulassen. Bei den Ausgabeseiten werden die Cache-control - Header jetzt einfach manuell ergänzt.
 
Zurück
Oben