3 Stimmen

Download mit PHP mit Headern funktioniert nicht in IE8

Ich versuche, eine Excel-Datei herunterzuladen, die mit PHP-Headern generiert wird:

$filename = "assets.xls";
header('Content-Type: application/vnd.ms-excel');
header("Content-Disposition: attachment;filename=$filename");
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');

Aber das funktioniert nicht in IE8 (aber auf einigen anderen PCs mit IE8 funktioniert es???!!). IE8 versucht, die export.php-Datei anstelle von assets.xls herunterzuladen. Irgendwelche Ideen, warum IE8 das tut?

0voto

TomK89 Punkte 61

Nachdem ich den ganzen Nachmittag damit verbracht hatte, mit einem ähnlichen Problem zu kämpfen, entdeckte ich, dass das Einstellen

header("Cache-Control: private");

die beste Lösung war. Ich hatte bereits versucht sicherzustellen, dass die Content-Length, Content-Type und Content-Disposition festgelegt und korrekt formatiert waren. Das Problem ist tatsächlich, dass neue IE8-Fenster und -Tabs anscheinend keinen Download durch PHP-Header mögen, wenn es zum ersten Mal passiert. Beim erneuten Versuch der Datei nach dem ersten Versuch funktioniert es einwandfrei (in meinen Fällen).

Nachdem ich wie oben erwähnt das Cache-Control eingestellt hatte, haben alle meine Links in IE8 ohne Probleme funktioniert.

0 Stimmen

Niemand kümmert sich mehr um IE8 (sogar IE9 und IE10 wurden von mrcf fallen gelassen)

0 Stimmen

@albanx Meine Kunden nutzen immer noch Windows XP! Leider verwenden immer noch viele Unternehmen XP in ihren Büros.

0 Stimmen

Vor 2 Jahren hatte ich dasselbe Problem in meinem vorherigen Job. Wir konnten die Kunden überzeugen, auf neue moderne Browser umzusteigen, indem wir ihnen sagten, dass sie mehr Funktionen und ein schnelleres Erlebnis sowie mehr Sicherheit haben werden. (selbst auf XP können Sie Chrome und Firefox laden)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X