【发布时间】:2013-03-12 08:11:18
【问题描述】:
我有一个 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 从远程服务器复制文件。但是当我从网络浏览器运行时同样的问题。它总是下载文件,执行下一行然后死掉!很奇怪!
我应该怎么做才能克服这个问题?
【问题讨论】:
-
您检查过网络服务器的错误日志吗?
-
只是跑题了,抱歉,但我忍不住:我记得有次“640KB 应该足够所有人使用”。而现在,50-100 MB 是“小文件”。