我使用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个= $大小-1; $ new_length = $ $大小 - 范围; 标题(“HTTP / 1.1 206部分内容”); 标题(“Content-Length:$ new_length”); 标题(“Content-Range:bytes $ range $ size2 / $ size”); apache_setenv('HTTP_RANGE',$ _SERVER ['HTTP_RANGE']); } else { $ size2个= $大小-1; 标题(“Content-Range:bytes 0- $ size2 / $ size”); 标题(“Content-Length:”。$ size); }
所以web客户端被下载的文件就像HTTP_RANGE一样工作,但是在真正的Apache中总是发送相同的文件范围,如:如果客户端请求4000-6000字节,Apache发送0-2000等,所以文件被破坏。
我认为有一些方法可以使用apache_setenv来实现,但在Google上找不到任何有关这方面的build议。
尝试使用Apache的xfilesend模块。