4
我使用PHP函數virtual()通過Apache 2.2發送文件(它的工作速度快於readfile()),我可以檢查用戶訪問權限。通過支持HTTP_RANGE的Apache和PHP virtual()函數發送文件
但有沒有什麼辦法可以通過HTTP_RANGE添加持續下載支持?
我已經試過這樣的事情
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);
}
所以Web的客戶端被下載的文件一樣,如果HTTP_RANGE工作,但在實際的Apache只是將始終是相同的文件範圍,如:如果客戶問4000- 6000字節,Apache發送0-2000等,所以文件被破壞。
我認爲有一些方法可以使用apache_setenv來做到這一點,但無法在Google中找到任何有關這方面的建議。
您是否也可以發佈在服務器和客戶端事務期間發送的實際HTTP標頭。 – karlcow 2011-02-06 16:42:08