Hi ihr,
ich habe ein kleines/großes Problem. Ich wollten einen Downloadmanager schreiben. Also ein Tool, welches mir ermöglicht Dateien zum komfortablen download bereitzustellen.
Jetzt hatte ich für den Download folgenden Code geschrieben (die Variablen sind ja egal):
Das ganze läuft auch soweit perfekt. Ich kann auf dem Server eine Datei 123.XYZ haben, aber der Download meldet mir dann eine Datei namens XYZ.123 (oder anders). Dadurch kann ich beim upload gewährleisten, daß keine Dateien überschrieben werden.
Jetzt habe ich aber das Problem, daß mein Hoster (ich nenne keine Namen) generell PHP-Scripte nach 90 Sekunden terminiert - dadurch wird dann der Download bei größeren Dateien gnadenlos abgebrochen, weil ja readfile() läuft.
Okay, dachte ich mir, biste ja clever (dachte ich zumindest) und nimmst den folgenden Befehl statt des oben stehenden Codes:
Tja, nun klappt zwar der Download, aber ich habe keinen Einfluß auf den Dateinamen für den Download mehr. Es wird immer der Name genommen, wie auf dem Server. Das ist aber ungünstig.
Kennt jemand eine Idee, wie man das mit zusätzlichen Headern (oder anders) auf die gleiche Funktionialität wie oben bringen kann?
Wäre euch sehr dankbar.
CU
MARS_3-142
ich habe ein kleines/großes Problem. Ich wollten einen Downloadmanager schreiben. Also ein Tool, welches mir ermöglicht Dateien zum komfortablen download bereitzustellen.
Jetzt hatte ich für den Download folgenden Code geschrieben (die Variablen sind ja egal):
PHP Code:
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: ".finde_content($datei["vch_filename"]));
header("Content-Disposition: attachment; filename=".$datei["vch_filename"]);
header("Content-Length: ".$datei["int_size"]);
header("Content-Transfer-Encoding: binary");
@readfile("downloads/".$datei["vch_alias"]);
Jetzt habe ich aber das Problem, daß mein Hoster (ich nenne keine Namen) generell PHP-Scripte nach 90 Sekunden terminiert - dadurch wird dann der Download bei größeren Dateien gnadenlos abgebrochen, weil ja readfile() läuft.
Okay, dachte ich mir, biste ja clever (dachte ich zumindest) und nimmst den folgenden Befehl statt des oben stehenden Codes:
PHP Code:
header ("Location: downloads/".$datei["vch_alias"]);
Kennt jemand eine Idee, wie man das mit zusätzlichen Headern (oder anders) auf die gleiche Funktionialität wie oben bringen kann?
Wäre euch sehr dankbar.
CU
MARS_3-142
Comment