Загрузка большого количества изображений на мой сервер и уведомление пользователя о завершении загрузки.

StackOverflow https://stackoverflow.com/questions/2409318

Вопрос

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

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

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

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

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

Это было полезно?

Решение

Я думаю, вы можете проверить, все ли файлы на месте, с помощью чего-то вроде

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

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top