Загрузка большого количества изображений на мой сервер и уведомление пользователя о завершении загрузки.
-
18-09-2019 - |
Вопрос
Я хочу загрузить большое количество файлов на свой сервер.У меня есть список различных файлов для загрузки и места, где их можно разместить.Все это не проблема, я использую 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-скрипт будет заблокирован до завершения внешней команды.После завершения вы можете повторить имя завершенного файла.