我有一个 PHP 脚本,可以从我拥有的远程服务器下载带有直接链接的文件。有时是大文件 (~500-600 MB),有时是小文件 (~50-100 MB)。
脚本中的一些代码:
$links[0]="file_1";
$links[0]="file_2";
$links[0]="file_3";
for($i=0;$i<count($links);$i++){
$file_link=download_file($links[$i]); //this function downloads the file with curl and returns the path to the downloaded file in local server
echo "Download complete";
rename($file_link,"some other_path/..."); //this moves the downloaded file to some other location
echo "Downloaded file moved";
echo "Download complete";
}
我的问题是,如果我下载大文件并从 Web 浏览器运行脚本,最多需要 5-10 分钟才能完成,并且脚本会回显到“下载完成”,然后它会完全死掉。我总是发现在脚本终止之前正在下载的文件是 100% 下载的。
另一方面,如果我从 Web 浏览器下载 50-100MB 之类的小文件或从命令 shell 运行脚本,则根本不会出现此问题并且脚本完全完成。
我为此使用自己的 VPS,并且在服务器中没有任何时间限制。没有致命错误或内存过载问题。
我也曾经ssh2_sftp
从远程服务器复制文件。但是当我从网络浏览器运行时同样的问题。它总是下载文件,执行下一行然后死掉!很奇怪!
我应该怎么做才能克服这个问题?