繁体   English   中英

在PHP中使用cURL下载大文件-页面挂起

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM