Вы не зашли.
Главная » PHP » как на php сделать фоновую закачку файла
#1. alibek_kz Off (0)
Участник
2013.07.10 07:07
как?можно ли реализовать?
#2. Gemorroj Off (107)
Administrator
2013.07.10 10:10
ложить задания в бд. и отдельным скриптом по крону выкачивать.
#3. alibek_kz Off (0)
Участник
2013.07.10 10:10
вообщем эти файлы через сокеты и функции copy не закачиваеться.только через curl.закачка видео в формате 3gp из ютуба
Код:
span style="color: #0000BB"><?php$url = 'domain.com/file.3gp';$targetFile = fopen('m.3gp', 'w');$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_NOPROGRESS, false);curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'progressCallback');curl_setopt($ch, CURLOPT_FILE, $targetFile);curl_exec($ch);fclose($ch);function progressCallback($download_size, $downloaded_size, $upload_size, $uploaded_size){ static $previousProgress = 0; if ( $download_size == 0 ) $progress = 0; else $progress = round($downloaded_size * 100/$download_size);}?>
этим способом некачает в фоновом режиме
Отредактировано alibek_kz (2013.07.10 12:12)
#4. Gemorroj Off (107)
Administrator
2013.07.10 11:11
вот только при чем тут фоновая загрузка..)
#5. alibek_kz Off (0)
Участник
2013.07.10 11:11
не понял?
#6. alibek_kz Off (0)
Участник
2013.07.10 12:12
например пользаватель найдет себе видео и нажмет на кнопку создать 3gp и должен файл 3gp скачаться на сервер в фоновом режиме.и пользаватель когда обновляет страницы ему скрипт должна выводить процент загрузки файла на сервер.ну понял?
#7. Gemorroj Off (107)
Administrator
2013.07.10 13:01
alibek_kz, это не фоновая загрузка. Ты скачиваешь файл в 1 потоке. Если пользователь перезагрузит страницу, то закачка оборвется (если не стоит ignore_user_abort). Это просто прогресс загрузки файла. Никакого отношения к "фоновости" это не имеет.
#8. alibek_kz Off (0)
Участник
2013.07.10 13:01
ну тогда как сделать так как в 6 посте?
#9. Gemorroj Off (107)
Administrator
2013.07.10 13:01
как во 2 посте.
#10. alibek_kz Off (0)
Участник
2013.07.10 19:07
ну тогда через вед не работает.что будет ли работат если я напишу ignore_user_abort
#11. Gemorroj Off (107)
Administrator
2013.07.10 20:08
какой еще "вед"?
#12. alibek_kz Off (0)
Участник
2013.07.10 21:09
вед крон незнает когда пользаватель заходить
#13. Gemorroj Off (107)
Administrator
2013.07.11 00:12
крон запускай каждую минуту, например.
сгребай в массив ссылки из базы. ставь в бд отметку что файлы в процессе скачивания (чтобы новый крон процесс не взял эти ссылки).
скачивай.
а пользователю выдаешь инфу из бд о состоянии его ссылки.
#14. POFIGISST Off (6)
Участник
2013.07.11 10:10
а нагрузки не будет если каждую минуту запускать?
#15. Gemorroj Off (107)
Administrator
2013.07.11 10:10
POFIGISST, ну можешь не запускать.
#16. alibek_kz Off (0)
Участник
2013.07.11 15:03
а как на javascript e реализовать?
#17. Gemorroj Off (107)
Administrator
2013.07.11 15:03
http://blueimp.github.io/jQuery-File-Upload/
#18. Akdmeh Off (9)
Участник
2013.07.17 11:11
Я еще делал так:
запускал файл через system(), и запускал wget в фоновом процессе (команда типа wget http://example.com/test.jpg &). Решение хорошее тем, что мы делаем задачу загрузки на плечи более предназначенной для этого программе, а не средствами php.
Правда, я не нашел лучшего решения узнать, загружен ли файл, чем средством файла-флага, то есть, я создаю файл с тем же именем и окончанием .finished, и затем проверяю с помощью php - если файл с данным окончанием существует, значит файл закачан.

Если интересует, могу скинуть части кода с моим решением.
У меня еще, правда, стояла задача по конвертации файла, но это уже мелочи.
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#19. TLENS Off (14)
Moderator
2013.07.22 22:10
Можно как вариант создать script_loader.php?url=url&path=Куда качать
и с другого script_process.php делать команду например через курл с минимальным таймаутом ожидания ответа. Скрипт послал http запрос на script_loader.php и при получении ошибки об таймауте продолжает выполнение генерации страницы. А вот процент можно определить filesize($path) * 100 / данные полученые из заголовков get_headers($url, true);
#20. alibek_kz Off (0)
Участник
2013.08.02 17:05
Akdmeh написал:
Я еще делал так:
запускал файл через system(), и запускал wget в фоновом процессе (команда типа wget http://example.com/test.jpg &). Решение хорошее тем, что мы делаем задачу загрузки на плечи более предназначенной для этого программе, а не средствами php.
Правда, я не нашел лучшего решения узнать, загружен ли файл, чем средством файла-флага, то есть, я создаю файл с тем же именем и окончанием .finished, и затем проверяю с помощью php - если файл с данным окончанием существует, значит файл закачан.

Если интересует, могу скинуть части кода с моим решением.
У меня еще, правда, стояла задача по конвертации файла, но это уже мелочи.
я знаю этот вариант и этот доступен только в вдс или дедике.а я на шаред хостинге
#21. TLENS Off (14)
Moderator
2014.05.06 20:08
Как вариант выполнить системную команду wget http://... &
Правда сам не пробовал из php но думаю норм вариант
#22. alibek_kz Off (0)
Участник
2014.05.06 20:08
TLENS написал:
Как вариант выполнить системную команду wget http://... &
Правда сам не пробовал из php но думаю норм вариант
Да на этом и остался.
Но оно в шаред хостах не будет работать.
Страниц: 1 2 3 Все
Главная
WEB
PunBB Mod v0.6.2
0.022 s