- Автор темы
- #1
Доброго времени суток, коллеги. Тема не совсем для начинающих.
Есть интересная задача, научить PHP нормально работать с FTP.
Проблема: скрипт закачивает по FTP файл большого размера (10минут и дольше), но в конце всегда выдаёт ошибку якобы файл не был успешно загружен, хотя на самом деле файл успешно залился.
Умные люди подсказали что для загрузки файла используется отдельное соединение и пока файл загружается, основное соединение тухнет, после чего PHP пытается проверить по основному (закрытому сервером) соединению узнать результат загрузки и бреется.
Это в теории, может кто сталкивался на практике? Теоретически нужно проверить:
1) жив ли ещё сервер, если нет, переподключиться
тут можно отправить какую-нибудь команду на сервер, например, NOOP (интересно, можно-ли узнать открыто соединение или нет, есть ли в PHP общий пул текущих соединений?)
2) докачался ли файл, если нет, то докачать
Используются стандартные ф-ции ftp_* Для загрузки используется обычный или асинхронный режим с индикатором прогресса.
Какие есть мнения на даннй счёт? Больше интересует практический опыт, т.к. код мне написать не сложно и самому
Есть интересная задача, научить PHP нормально работать с FTP.
Проблема: скрипт закачивает по FTP файл большого размера (10минут и дольше), но в конце всегда выдаёт ошибку якобы файл не был успешно загружен, хотя на самом деле файл успешно залился.
Умные люди подсказали что для загрузки файла используется отдельное соединение и пока файл загружается, основное соединение тухнет, после чего PHP пытается проверить по основному (закрытому сервером) соединению узнать результат загрузки и бреется.
Это в теории, может кто сталкивался на практике? Теоретически нужно проверить:
1) жив ли ещё сервер, если нет, переподключиться
тут можно отправить какую-нибудь команду на сервер, например, NOOP (интересно, можно-ли узнать открыто соединение или нет, есть ли в PHP общий пул текущих соединений?)
2) докачался ли файл, если нет, то докачать
Используются стандартные ф-ции ftp_* Для загрузки используется обычный или асинхронный режим с индикатором прогресса.
Какие есть мнения на даннй счёт? Больше интересует практический опыт, т.к. код мне написать не сложно и самому