hi leute!
ich weiß dass ich neu bin aber ich habe dennoch ein großes problem... ich habe mir in den letzten tagen ein relativ komplexes dateidownload-script geschrieben. als ich es heute mit größeren dateien teste trat ein ungewöhnlicher fehler auf.
ich uploadete 2 dateien: 1x 10mb zip-datei / 1x 3,6mb mp3-datei
und versuchte diese dann downzuloaden. der download startete auch ordnungsgemäß. ich verwende zum download "free download manager" in der aktuellsten version. jedoch erstellte der download manager mehrere "abschnitte" und requestete daher auch dementsprechend oft die datei was 1) dazu führte dass der downloadcounter gleich um die anzahl der abschnitte erhöht wurde und 2) dass die datei bei jedem request von vorne geladen wurde und somit die datei völlig zerhackt übertragen wurde aber eben immer nur der erste teil. dies bemerkte ich jedoch nur bei der mp3-datei. es wäre möglich dass dies auch bei der zip-datei der fall sein könnte jedoch hatte da das programm 2 mirrors zur verfügung und ich kann das daher nicht nachvollziehen...
bei einem download mit dem normalen ie-download passierte das nicht da ja nur eine verbindung erstellt wird.
ich weiß es gibt bei der server-configuration die möglichkeit dass man nur je eine simultane verbindung zu einer datei erlaubt, jedoch ist es mir nicht möglich die configuration des servers zu verändern und zudem soll das script auch weiterhin auf "allen" servern funktionieren auch ohne so spezielle anpassungen...
meine frage daher: gibt es eine möglichkeit dieses "fehlverhalten" per php-script zu unterbinden oder muss ich eine art "datei-lock" entwickeln welche sich nach ip bzw start und größe der datei richtet?
ich wäre über jeden vorschlag bzw hinweis sehr dankbar.
mfg
flow
ich weiß dass ich neu bin aber ich habe dennoch ein großes problem... ich habe mir in den letzten tagen ein relativ komplexes dateidownload-script geschrieben. als ich es heute mit größeren dateien teste trat ein ungewöhnlicher fehler auf.
ich uploadete 2 dateien: 1x 10mb zip-datei / 1x 3,6mb mp3-datei
und versuchte diese dann downzuloaden. der download startete auch ordnungsgemäß. ich verwende zum download "free download manager" in der aktuellsten version. jedoch erstellte der download manager mehrere "abschnitte" und requestete daher auch dementsprechend oft die datei was 1) dazu führte dass der downloadcounter gleich um die anzahl der abschnitte erhöht wurde und 2) dass die datei bei jedem request von vorne geladen wurde und somit die datei völlig zerhackt übertragen wurde aber eben immer nur der erste teil. dies bemerkte ich jedoch nur bei der mp3-datei. es wäre möglich dass dies auch bei der zip-datei der fall sein könnte jedoch hatte da das programm 2 mirrors zur verfügung und ich kann das daher nicht nachvollziehen...
bei einem download mit dem normalen ie-download passierte das nicht da ja nur eine verbindung erstellt wird.
ich weiß es gibt bei der server-configuration die möglichkeit dass man nur je eine simultane verbindung zu einer datei erlaubt, jedoch ist es mir nicht möglich die configuration des servers zu verändern und zudem soll das script auch weiterhin auf "allen" servern funktionieren auch ohne so spezielle anpassungen...
meine frage daher: gibt es eine möglichkeit dieses "fehlverhalten" per php-script zu unterbinden oder muss ich eine art "datei-lock" entwickeln welche sich nach ip bzw start und größe der datei richtet?
ich wäre über jeden vorschlag bzw hinweis sehr dankbar.
mfg
flow
PHP-Code:
$fp=@fopen($dateipfad,"r");
if ($fp) {
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Content-Type: ".$ctype);
header("Content-Description: File Transfer");
header("Pragma: public");
header("Expires: 0");
header("Content-Disposition: attachment; filename=".$dateiname);
header("Content-Length: ".$ergebnis_inhalt["dateigroesze"]);
header("Accept-Ranges: bytes");
while (!feof($fp)) {
echo(fgets($fp, 4096));
}
}
fclose ($fp);
Kommentar