Frage

Ich verwende die PHP-Funktion virtual () zum Senden von Dateien mit Apache 2.2 (sie funktioniert schneller als readfile () ) und ich kann die Benutzerzugriffsberechtigungen überprüfen.

Aber gibt es eine Möglichkeit, mit HTTP_RANGE kontinuierliche Download-Unterstützung hinzuzufügen?

Ich habe solche Dinge ausprobiert

if(isset($_SERVER['HTTP_RANGE'])) { 
        list($a, $range)=explode("=",$_SERVER['HTTP_RANGE']); 
        str_replace($range, "-", $range); 
        $size2=$size-1; 
        $new_length=$size-$range; 
        header("HTTP/1.1 206 Partial Content"); 
        header("Content-Length: $new_length"); 
        header("Content-Range: bytes $range$size2/$size"); 
        apache_setenv('HTTP_RANGE', $_SERVER['HTTP_RANGE']);
    } else { 
        $size2=$size-1; 
        header("Content-Range: bytes 0-$size2/$size"); 
        header("Content-Length: ".$size); 
} 

Der Web-Client hat also Dateien heruntergeladen, als ob HTTP_RANGE funktioniert, aber in echtem Apache sendet er immer die gleichen Dateibereiche wie: Wenn der Client 4000-6000 Bytes fragt, sendet Apache 0-2000 und so weiter, so dass Dateien beschädigt wurden.

Ich denke, dass es eine Möglichkeit gibt, dies mit apache_setenv zu tun, kann aber in Google keinen Vorschlag dazu finden.

War es hilfreich?

Lösung

Versuchen Sie, das xfilesend-Modul für Apache zu verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top