我试图建立一种使用PHP和cURL扩展的基于web的下载管理器,但我仍然遇到了一个问题,我如何使用cURL下载和保存文件,而不必让用户等待,这意味着他将提出请求并在后台处理。如何在PHP的后台运行cURL请求?
现在我不能使用系统调用(exec,system ...等),因为我使用的大多数主机都禁用了这些函数,另一个问题是PHP脚本的最大执行时间,但我想这个一个可以在.htaccess中改变或使用ini_set或不可以?
我读过的地方,将connect_timeout设置为1将工作,但不会终止连接?
一个解决方案是使用cronjobs,在用户提交他想下载的文件后,cronjob会检查数据库,如果队列中有文件,它会开始下载它,但我想我想尽可能避免使用cron作业。
所以回的主要问题,是有没有办法告诉PHP脚本在后台运行一些特定的功能,无论提供该功能的结果给用户的响应
感谢
我刚刚阅读了你发布的链接,这就是为什么我用粗体表示的问题,问题依然存在,这是否会终止连接?说我有一个大文件,我用cURL请求它,然后将超时设置为1,请求被终止?,再加上使用JS意味着vvisitor将不得不保持打开页面,直到下载完成为止?如果他们关闭该页面,下载将停止?我在这里讨论1 GB文件,所以它必须依赖于服务器,因为访问者不应该等待那么长时间,他们会排队文件并离开 –
HTTP是一种无状态协议,即没有连接服务器会关心。它接收到一个请求并运行它应该执行的任何逻辑,直到完成为止,然后发送响应。客户是否仍然收到该响应并不重要。响应超时告诉客户端等待响应需要多长时间,但与服务器上发生的情况无关。 – joerx
感谢您的链接:) –