[英]Downloading large file with cURL in PHP - Page hangs
我有一个PHP脚本,可以从各个位置下载视频。 视频文件的大小可以在20mb到100mb +之间
我目前使用PHP将CURLOPT_FILE将视频文件保存在目录中。 一切正常,没有任何问题。
由于要下载的文件很大,因此我将cURL超时时间设置为45分钟以允许文件下载。 我还设置了set_time_limit(0),以便PHP页面在下载完成后应继续处理。 我还设置了ini_set(“ memory_limit”,“ 500M”); 下载完成后,应回显“ Downloaded”,然后更新一条mysql记录,说明文件已下载。
虽然发生了什么,但是视频文件正在通过cURL正确下载,但在浏览器中却没有显示“ Downloaded”,但正在更新mysql。
为什么是这样? 我曾尝试自己提出解决方案,但无法解决这里的问题是什么...
如果您在浏览器环境中,则浏览器将在特定时间后超时,因此即使脚本将继续运行,它也将停止侦听脚本的输出。 随浏览器的不同而不同,但是我看到的数字是30秒。
为了克服这个问题,您应该经常发送输出(即使无意义的echo "<!--empty comment-->";
)也是如此。
最近,我遇到了类似的问题,我不通过脚本输出任何内容,而是经常使用AJAX从浏览器中进行轮询以查看是否完成了该问题。
或者,不要使用浏览器环境(因为它不太适合解决此问题),而应使用命令行提示符,因为它(据我所知)没有这些超时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.