我想将大量文件下载到我的服务器。我有一个要下载的不同文件列表和位置放置它们的位置。这一切都不是问题,我使用wget下载文件,用shell_exec执行此操作
$command = 'wget -b -O' . $filenameandpathtoput . ' ' . $submission['url'];
shell_exec($command);
这很好用,服务器启动所有线程,文件立即下载。
问题是,我想在下载文件时通知用户......这不适用于我目前的做事方式。那你将如何实现呢?
任何建议都会有所帮助!
答案 0 :(得分:2)
我想您可以使用类似
的内容检查是否所有文件都已到位function checkFiles ()
{
foreach ($_SESSION["targetpaths"] as $p)
{
if (!is_file($p)) return false;
}
return true;
}
现在,您所要做的就是在服务器上调用一个每秒钟(或左右)调用此函数的脚本。您可以使用Meta Refresh完成此操作(强制浏览器在n秒后重新加载页面)或使用AJAX(例如,查看jQuery的.getJSON
)。
如果调用脚本并且文件尚未全部下载,请打印“请稍候”等内容,稍后再刷新。否则,显示成功消息。多数民众赞成。
答案 1 :(得分:0)
您可以考虑使用exec来运行外部wget命令。您的PHP脚本将阻塞,直到外部命令完成。完成后,您可以回显已完成文件的名称。