将大量图像下载到我的服务器,并在下载完成后通知用户

时间:2010-03-09 13:32:02

标签: php download wget notifications

我想将大量文件下载到我的服务器。我有一个要下载的不同文件列表和位置放置它们的位置。这一切都不是问题,我使用wget下载文件,用shell_exec执行此操作

$command = 'wget -b -O' . $filenameandpathtoput . ' ' . $submission['url'];
shell_exec($command);

这很好用,服务器启动所有线程,文件立即下载。

问题是,我想在下载文件时通知用户......这不适用于我目前的做事方式。那你将如何实现呢?

任何建议都会有所帮助!

2 个答案:

答案 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脚本将阻塞,直到外部命令完成。完成后,您可以回显已完成文件的名称。