Загрузка большого количества изображений на мой сервер и уведомление пользователя о завершении загрузки - PullRequest
0 голосов
/ 09 марта 2010

Я хочу загрузить большое количество файлов на мой сервер. У меня есть список различных файлов для загрузки и места, где их разместить. Это все не проблема, я использую wget для загрузки файла, выполните это с shell_exec

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

Это прекрасно работает, сервер запускает все потоки и файлы загружаются в кратчайшие сроки.

Проблема в том, что я хочу уведомить пользователя, когда файлы загружены ... И это не работает с моим текущим способом работы. Так как бы вы это реализовали?

Любые предложения будут полезны!

Ответы [ 2 ]

2 голосов
/ 09 марта 2010

Полагаю, что вы можете проверить, все ли файлы на месте, например

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

Теперь все, что вам нужно сделать, это вызвать скрипт на вашем сервере, который вызывает эту функцию каждую секунду (или около того). Вы можете сделать это с помощью Meta Refresh (вынудив браузер перезагрузить страницу через n секунд) или с помощью AJAX (например, посмотрите на jQuery .getJSON).

Если сценарий вызывается и файлы еще не все загружены, напечатайте что-то вроде «Пожалуйста, подождите» и обновите позже. В противном случае покажите сообщение об успехе. Вот и все.

0 голосов
/ 09 марта 2010

Вы можете использовать exec для запуска внешней команды wget. Ваш PHP-скрипт будет блокироваться до завершения внешней команды. После его завершения вы можете повторить имя завершенного файла.

...