yubb.de-Logo
Tutorials
yubb@yubb
yubbService
Inside yubb



Gründe für so eine Beschränkung gibt es viele. Einerseits kann man damit erheblich die Auslastung des entsprechenden Servers verringern und Bandbreite sparen. Andererseits kann man, wie es chip.de tut, Benutzern einen Highspeed-Download ohne Begrenzung mit Bezahlung und einen Lowspeed-Download für Nicht-Zahler einrichten.

Und dafür sorgen nur einige Zeilen PHP-Code:
PHP-Datei:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php

$file 
"happy.zip"// Datei zum Herunterladen
$speed 7// Downloadrate, hier 7 kb/s

if(file_exists($file) && is_file($file)) { // Prüfung auf Existenz der Datei
    
header("Cache-control: private"); // Überlässt die Kontrolle der Dateiübertragung dem Script
    
header("Content-Type: application/octet-stream"); // Setzt den Header zum Download
    
header("Content-Length: ".filesize($file)); // Gibt die Dateigröße an
    
header("Content-Disposition: filename=$file"); // Definiert, wo die Datei liegt.

    
flush(); // Leert den Zwischenspeicher

    
$fd fopen($file"r"); // Öffnet die Datei zum Lesen
    
while(!feof($fd)) {
        echo 
fread($fdround($speed*1024)); // Liest und sendet exakt soviel KB, wie angegeben
        
flush(); // Leert wieder den Zwischenspeicher
        
sleep(1); // Setzt das Script für 1 Sekunde aus
    
}
    
fclose ($fd);
}
?>


Da das Script jeweils nur 7 kb überträgt und anschließend für eine Sekunde ausgesetzt wird, erhält man die Datenübertragungsgeschwindigkeit von 7 kb/s.
Man darf jedoch nicht mit Ordnern arbeiten, sodass diese Datei im gleichen Verzeichnis wie die herunterzuladene Datei liegen muss.

Geschrieben von Phil Marx am 26.04.2005 (12258x gelesen)
weiterempfehlen weiterempfehlen   Druckversion Druckversion   kommentieren kommentieren

Ich würde behaupten, man erhält weniger als 7KB/s - schließlich geht für das `normale´ Übertragen ja auch Zeit drauf ...
Geschrieben von René
Wo genau liegt da das Problem mit den Ordnern? :O
Geschrieben von michi