Dateidownload mit PHP mithilfe von Header() erzwingen
Problem:
Trotz verschiedener Versuche Benutzererfahrung Schwierigkeiten beim Veranlassen von Dateidownloads von einem Server mithilfe der PHP-Funktion header(). Sie beobachten, dass die erforderlichen Header gesendet werden, stoßen jedoch auf Probleme mit der Anzeige des Speicherdialogs.
Lösung:
Um Dateidownloads erfolgreich zu erzwingen, müssen die Header entsprechend eingestellt werden. Der folgende Code geht auf die geäußerten Bedenken ein:
$quoted = sprintf('"%s"', addcslashes(basename($file), '"\')); $size = filesize($file); header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . $quoted); header('Content-Transfer-Encoding: binary'); header('Connection: Keep-Alive'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . $size);
Hauptunterschiede zu früheren Versuchen:
Verifizierte Browser:
Es wurde bestätigt, dass diese Lösung in Firefox 8.0.1, Chrome 15.0.874.121 und Safari 5.1.1 funktioniert.
Das obige ist der detaillierte Inhalt vonWie kann ich Dateidownloads in PHP mit „header()' erzwingen und Probleme bei der Browseranzeige vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!