title
Description
Body
крон запускай каждую минуту, например.
сгребай в массив ссылки из базы. ставь в бд отметку что файлы в процессе скачивания (чтобы новый крон процесс не взял эти ссылки).
скачивай.
а пользователю выдаешь инфу из бд о состоянии его ссылки.
Неактивен
Неактивен
Я еще делал так:
запускал файл через system(), и запускал wget в фоновом процессе (команда типа wget http://example.com/test.jpg &). Решение хорошее тем, что мы делаем задачу загрузки на плечи более предназначенной для этого программе, а не средствами php.
Правда, я не нашел лучшего решения узнать, загружен ли файл, чем средством файла-флага, то есть, я создаю файл с тем же именем и окончанием .finished, и затем проверяю с помощью php - если файл с данным окончанием существует, значит файл закачан.
Если интересует, могу скинуть части кода с моим решением.
У меня еще, правда, стояла задача по конвертации файла, но это уже мелочи.
Неактивен
Можно как вариант создать script_loader.php?url=url&path=Куда качать
и с другого script_process.php делать команду например через курл с минимальным таймаутом ожидания ответа. Скрипт послал http запрос на script_loader.php и при получении ошибки об таймауте продолжает выполнение генерации страницы. А вот процент можно определить filesize($path) * 100 / данные полученые из заголовков get_headers($url, true);
Неактивен
Akdmeh написал:
Я еще делал так:
запускал файл через system(), и запускал wget в фоновом процессе (команда типа wget http://example.com/test.jpg &). Решение хорошее тем, что мы делаем задачу загрузки на плечи более предназначенной для этого программе, а не средствами php.
Правда, я не нашел лучшего решения узнать, загружен ли файл, чем средством файла-флага, то есть, я создаю файл с тем же именем и окончанием .finished, и затем проверяю с помощью php - если файл с данным окончанием существует, значит файл закачан.
Если интересует, могу скинуть части кода с моим решением.
У меня еще, правда, стояла задача по конвертации файла, но это уже мелочи.
я знаю этот вариант и этот доступен только в вдс или дедике.а я на шаред хостинге
Неактивен