我经常搜索但找不到解决方案。我有这个下载文件的Curl脚本。问题是当用户取消在浏览器中加载脚本时,他继续下载文件。我想知道当用户重新加载脚本页面或取消curl暂停下载文件时如何做到这一点。
答案 0 :(得分:1)
您需要使用“进程队列”的概念重写代码,以便下载文件的工作由可以独立于主Web服务器控制的工作进程执行。
有很多方法可以在PHP中自己编写,但最好是查看现有的解决方案,例如Gearman或PHP Resque来完成此任务。
进程排队起初可能看起来令人生畏,但它确实是启动大型进程(图像处理,大型文件下载等)并能够监控其进度并独立终止它们的唯一方法。
您可以通过在Web服务器上分配shell命令来执行类似的操作,并可能保存PID并在以后根据需要终止它们,但与上述相比,这最终会成为一个噩梦。