Download slots ermöglichen nur wie?

PHP:
@preg_match("/[0-9a-zA-Z_-]{2,}_[0-9]{2}\.[0-9]{2}\.[0-9]{2}_[0-9]{2}\-[0-9]{2}_([0-9a-zA-Z]{2,})_[0-9]{1,}_TVOON_DE./", $files, $Sender);
	
	@preg_match("/([0-9a-zA-Z_-]{2,})_[0-9]{2}\.[0-9]{2}\.[0-9]{2}_[0-9]{2}\-[0-9]{2}_([0-9a-zA-Z]{2,})_[0-9]{1,}_TVOON_DE./", $files, $sendung);
	
	@preg_match("/[0-9a-zA-Z_-]{2,}_([0-9]{2}\.[0-9]{2}\.[0-9]{2})_[0-9]{2}\-[0-9]{2}_[0-9a-zA-Z]{2,}_[0-9]{1,}_TVOON_DE./", $files, $Uhrzeit);
	
	@preg_match("[0-9a-zA-Z-_]{2,}_([0-9]{2}\.[0-9]{2}\.[0-9]{2})_[0-9]{2}-[0-9]{2}_[0-9a-zA-Z]{2,}_[0-9]{1,}_TVOON_DE(?:\.(HQ\.[a-z]+|[a-z]+))+\.otrkey", $files, $codec);
	
    $SQL = "INSERT INTO otrkey "; 
    $SQL .= "(Dateiname, Dateigroesse, date, Link, Server, Sender, Sendung, Uhrzeit, Codec, md5) VALUES "; 
    $SQL .= "('".$files."','".filesize($filess)."','".date($date)."','".$filess."','".$Server."','".$Sender[1]."','".$sendung[1]."','".$Uhrzeit[1]."','".$codec[1]."',,'".$chkmd5."')";

So habe ich das jetzt in mein script eingebaut aber leider speichert er nichts.

grüße strex
 
@Gumbo

Jetzt läuft das script derzeit testweise und ich habe leider einen großen Nachteil endeckt. Das ganze ist zu Serverlastig. Gibt es da optimierungs möglichkeiten?

Soweit ich das gesehen habe, kostet das lesen der Datei und die Ausgabe bis zu 15% CPU pro Download. Das ist einfach zuviel. Vielleicht gibt es ja eine andere Möglichkeit, ohne das read. Dabei muss aber immer gegeben sein, dass er den slot bei abbrechen oder so wieder löscht.

PHP:
$speed = $maxspeed; //Max-Speed in kbs

$file="".$_GET['file']."";
$dlfile="hf83jdw8ej3dsd/".$_GET['file']."";
$size=filesize($dlfile);
header("Cache-control: private");
header("Content-Type: application/x-otrkey");
header("Content-Length: ".$size);
header("Content-Disposition: filename=".$file);
flush();
$fd = fopen($dlfile, "r");
ignore_user_abort(true);
while( !feof($fd) ) {
    if( connection_status() !== 0 ) {
	    //Aktuelle slot wird gelöscht sobald user das script beendet 
        $update12 = "DELETE FROM slot WHERE session = '$session2';"; 
        $slott22 = mysql_query($update12, $DatabasePointer);  
        break;
    }
    echo fread($fd, round($speed*1024));
    flush();
    sleep(1);
}

Grüße strex
 
Ist die CPU-Auslastung bereits bei einer Verbindung so hoch? Wie sieht’s denn aus wenn die Geschwindigkeitsbegrenzung rausgenommen wird?
 
Öh, das muss ich testen. URL wo du das anschauen kannst: otr-download.de

Also ändere ich das einfach so ab:

$speed = $maxspeed; //Max-Speed in kbs

PHP:
$file="".$_GET['file']."";
$dlfile="hf83jdw8ej3dsd/".$_GET['file']."";
$size=filesize($dlfile);
header("Cache-control: private");
header("Content-Type: application/x-otrkey");
header("Content-Length: ".$size);
header("Content-Disposition: filename=".$file);
flush();
$fd = fopen($dlfile, "r");
ignore_user_abort(true);
while( !feof($fd) ) {
    if( connection_status() !== 0 ) {
        //Aktuelle slot wird gelöscht sobald user das script beendet 
        $update12 = "DELETE FROM slot WHERE session = '$session2';"; 
        $slott22 = mysql_query($update12, $DatabasePointer);  
        break;
    }
    echo $fd;
    flush();
    sleep(1);
}

grüße strex
 
Zurück