0

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

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

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

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

任何的意见都将会有帮助!

4

2 回答 2

2

我想您可以通过类似的方式检查所有文件是否都已到位

function checkFiles ()
{
    foreach ($_SESSION["targetpaths"] as $p)
    {
        if (!is_file($p)) return false;
    }
    return true;
}

现在您所要做的就是在您的服务器上调用一个脚本,该脚本每秒(左右)调用一次此函数。您可以使用 Meta Refresh(强制浏览器在 n 秒后重新加载页面)或使用 AJAX(.getJSON例如,查看 jQuery)来完成此操作。

如果调用了脚本并且文件尚未全部下载,请打印“请稍候”之类的内容并稍后再次刷新。否则,显示成功消息。就这样。

于 2010-03-09T13:40:11.727 回答
0

您可以考虑使用exec来运行外部 wget 命令。您的 PHP 脚本将阻塞,直到外部命令完成。完成后,您可以回显已完成文件的名称。

于 2010-03-09T13:40:03.960 回答