Die Datei kann nicht in IE7 herunterladen, aber es gibt kein Problem in Firefox, Chrome, etc ..?

StackOverflow https://stackoverflow.com/questions/117372

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).

War es hilfreich?

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,

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top