1

这是 StackOverflow 上反复出现的问题,我浏览所有现有建议均未成功。

这是我想要实现的目标:
- 访问者来到我的网页,我必须向他发送一个非常大的文件以供下载。
- 该文件位于远程服务器上,需要基本身份验证或 Cookie。只有我拥有 cookie/凭证。
- 我成功地使用 wget 下载了该文件,然后通过 X-sendfile mod (Apache) 将其提供给访问者,但它需要在下载前等待最终用户。
- 我想尽快提供下载服务,这意味着我的网站会充当某种代理或其他东西。
- 我尝试使用带有 cURL、fsockopen/feof 等的一堆代码,但要么它几乎不时使 Apache 崩溃,要么它是一个阻塞连接(只要他还没有完成下载,访问者就不能再浏览网站),要么它是破坏我的资源,因为我猜 php 试图把那个巨大的文件放在内存中。

所以总结一下:
- 我应该能够尽快提供远程文件以供下载
- 理想情况下逐块/按范围提供它?

额外信息:PHP 5.2.13、Gentoo、libcurl 5.2.13

4

2 回答 2

0

那么我有同样的问题,但我无法解决它。

但是有一些东西我很确定你可以使用。我不是因为我认为它是肮脏的编码,但因为你很匆忙,或者是 10 个月前(!),我可以建议

Glype 代理脚本,是一个强大的基于 php 的代理。

  • 安装它
  • 转到admin.php?settings
  • 启用热链接
  • 可能必须禁用 Gzip 压缩
  • 禁用SSL 警告
  • 禁用缓存
  • 检查简历传输(重要)

这些都是我能想到的,试试这个,然后发送 $_POST['u']includes/process.php?action=update

它应该工作。如果我测试它,我会告诉你结果...

希望能帮助到你。

于 2014-03-06T15:05:18.370 回答
0

据我所知,逐块发送它需要某种洪流解决方案。

于 2013-05-09T12:43:54.433 回答