HI, ich verwende PHP um den Speed künstlich zu begrenzen.
Hier ein Beispiel (nicht getestet)
<?php
//die Datei
$file='/der/lange/weg/zu/mein_archiv.rar';
$fp=fopen($file,"r");
$filename=basename($file);
$extget_temp = explode(".",$filename);
$anzahl_punkt=count($extget_temp);
$extget=$extget_temp[$anzahl_punkt-1];
$filesize = filesize($file);
//MimeType festlegen
$type='application/x-rar-compressed';
//Die Downloadgeschwindigkeit sollte ein Vielfaches von 8 sein!!!!
$sp_limit=64;
$disposition = ($extget != "zip") ? 'attachment' : 'inline';
header("Content-Disposition: $disposition; filename=".$filename."\n");
header("Content-Type: ".$type."\n");
header("Cache-Control: no-cache, post-check=0, pre-check=0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: public");
header("Last Modified: ".gmdate("D, d M Y H:i:s")."GMT\n");
header("Expires: 0\n");
header("Content-Length: ".$filesize."\n\n");
while(!feof($fp)){
set_time_limit(30);
print(fread($fp,$sp_limit*8));
flush();
sleep(1); //in diesem Beispiel werden 64kb Daten ausgegeben, dann eine Sek. warten, etc...
}
?>
Für $file kannst Du auch folgendes angeben:
$file='ftp://MEINFTPPASSWORT:MEINFTPUSERNAME@meinftp.de/meinedatei.rar';
Dann für $fp
$fp=($file,"rb");
In dem Fall mußt Du jedoch die Dateigröße / Name / Endung manuell angeben.
Hat den Vorteil, dass man ja über den FTP-Server den max-Uploadspeed steuern kann, also was alle User zusammen bekommen sollen. Man kann damit auch den FTP-Backupspace(Strato, Server4you oder 1und1) als Downloadspace benutzen.
Viel Erfolg damit.
Daniel