Die Datei kann nicht in IE7 herunterladen, aber es gibt kein Problem in Firefox, Chrome, etc ..?
-
02-07-2019 - |
Frage
Ich habe ein Skript, das eine verschlüsselte URL empfängt und dass ein Download erzeugt, der die meisten Kritiker par des Drehbuchs ist dies:
$MimeType = new MimeType();
$mimetype = $MimeType->getType($filename);
$basename = basename($filename);
header("Content-type: $mimetype");
header("Content-Disposition: attachment; filename=\"$basename\"");
header('Content-Length: '. filesize($filename));
if ( @readfile($filename)===false ) {
header("HTTP/1.0 500 Internal Server Error");
loadErrorPage('500');
}
Downloads arbeitet als Charme in jedem Browser außer IE, ich habe Probleme im Zusammenhang mit ‚no-cache‘ Header gesehen, aber ich so etwas nicht senden, sie sprechen über utf-8-Zeichen, aber es gibt keine utf-8 characters
( und der $ Dateiname hat kein utf-8 characteres weder).
Lösung
Diese Seite ein Problem ähnlich wie bei Ihnen in IE6 hat. Fassen wir zusammen:
session_start () standardmäßig sendet einen Cache-Steuerkopf einschließlich "no-store". Internet Explorer nimmt dies ein wenig zu wörtlich, muss aber nicht angemessen Fehlerbehandlung für den Fall, und als Folge explodiert kryptisch, wenn Sie Versuchen Sie die Ausgabeseite auf der Festplatte zu speichern.
Vor session_start () die Formulierung "session_cache_limiter ( 'none');", oder sehen, dass Funktion und optimiert die Begrenzer als angemessen (wahrscheinlich ist ‚privat‘ näher die Markierung).
Ich weiß, das Code-Snippet Sie hat geschrieben keinen Anruf gehören session_start();
, aber ich dachte, ich diese mögliche Lösung für den Fall, teilen würden Sie einen Anruf, es zu tun haben und haben uns einfach nicht an.
Andere Tipps
Ich löste es, indem die Header Senden
header('Pragma: public');
header('Cache-Control: max-age=0');
Ich habe nicht wusste, dass session_start () Header senden, indem er seine eigenen.
fand ich die Antwort in den Kommentaren von: Fehler: Internet Explorer Download-Dateinamen von WebServer
Verwenden Sie diese
In IE7-Browser Internet-Option gehen -> Sicherheit ---> Stufe anpassen ---> Downloads Eingabeaufforderung für Dateidownload dann aktiviert autometic.
das wird das Problem lösen.
Hoffnung dies helfen wird,