Apache的x-sendfile替代方案,可以下载带有resume-support的大文件

S B*_*S B 15 php apache yii

我需要以编程方式使用PHP启动文件下载以及resume-support

这些文件很重.所以IO缓冲如下或缓存不是一种选择

$content=file_get_contents($file);
header("Content-type: application/octet-stream");
header('Content-Disposition: attachment; filename="' . basename($file) . '"');
header("Content-Length: ". filesize($file));
echo $content;
Run Code Online (Sandbox Code Playgroud)

到目前为止,我找到的唯一可行选项是Apache模块X-sendfile.不幸的是我们的托管服务不会安装mod_xsendfile- 所以我们正在寻找其他托管服务提供商,但这是另一个故事.

我们正在使用LAMP和yii框架.有哪些替代方案?

小智 1

你的主机允许你安装像 Perlbal (http://www.danga.com/perlbal/) 这样的东西作为 apache 的代理吗?

Perlbal 允许您使用与 x-sendfile 非常相似的方法(使用 X-REPROXY-URL:/path/to/a/local/file.jpg)将文件服务卸载到它,并且它的性能非常高。(LiveJournal 和 Flickr 都使用(d)它。不过,它需要您在不同的端口上运行 apache,并在端口 80 上运行 perlbal,您的托管提供商可能不喜欢这一点。当然,您可以使用以下命令执行相同的操作如果你不喜欢 perlbal,可以使用 nginx 之类的东西。