我正在使用PHP函数 virtual()通过Apache 2.2发送文件(它比 readfile()),然后我可以检查用户访问权限。

但是有什么方法可以通过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中找不到任何建议。

有帮助吗?

解决方案

尝试将xfilesend模块用于Apache。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top