Всем доброго времени суток. При разработке очередного проекта столкнулся с проблемой. При отправке файла с машины пользователя на сервер, ему нужно показать процесс загрузки. То есть не просто марающий .gif, а актуальную информацию о количестве отправленных байт и процент от полной загрузки. Может даже рассчитать время, но суть не в этом. После небольшой пробежки по ресурсам выяснил, что стандартный php до версии 5.2 этого сделать в принципе не может. Начиная с версии 5.2 в php присутствует функция upload_progress_meter_get_info(), с ней проблем никаких не возникает. Но php 5.2 к сожалению мне не доступен. Дело в том, что на сервере установлен Plesk8 который не даёт сделать ни шагу вправо ни влево. Соответственно я также не могу установить фикс(http://pdoru.from.ro/) в сам php, который помогает решить эту проблему. Так как он требует перестановку самого php, а не просто добавление модуля. Где-то наткнулся на идею реализации загрузки с помощью cgi скрипта и последующей передачи файла в php, но так и не понял как это реализовать. Может кто-то сталкивался с подобной проблемой и может подсказать? Заранее спасибо.
Не, флеш тоже не катит. На самом деле я разобрался с пыхом и таки обновил его до 5.2.что-то там. Но к моему великому удивлению никакие новые фичи просто так не работают. Ковыряюсь сейчас с модулями. Если кто в курсе, подскажите.
Да, уже разобрался. Просто везде все кричали, что php 5.2 всё поддерживает и там никаких запарок нет. А по факту всё оказалось совсем не так. Вот кстати ссылка на модуль: http://pecl.php.net/package/uploadprogress/
Какой в попенгаген прогресс... Читай спецификацию HTTP. Можно сделать если файл хреначить на куски и эти куски отправлять отдельными post - минус если время отзыва большое сильно увеличится время загрузки. Вся байда типа флэша показывает не количество реально принятое и обработанное сервером а количество ушедшего от клиента.
Danilka Самое правильное решение Flash. Опыт, опыт и ещё раз опыт. На любом хостинге, где вы не можете что-либо сделать с PHP вас пошлют, к тому же этот upload progress реально ещё не доделан, обсуждения его доделки постоянно проскальзывают на внутреннем листе. Flash нельзя тока если вы работаете на 386 компе с монохромным монитором. Если причуда заказчика - шлите на йух. Если начальство - поинтересуйтесь - им ехать или хернёй страдать?
На самом деле всё немного проще. Хстинг - дэдик, так что можно развлекаться сколько угодно. Просто не хотелось всеми прелистями плеска жертвовать из-за одного прогрессбара. (хотя мемкеша не стало, после апдейта, но это уже другая песня). Начальство тут ни при чём. Просто проект замороченый и везде обошлись без флеша, одним jquery. Было бы как-то глупо после всей этой обходной работы вешать флеш на обычный файлапловд. Просто за совместимость очень боремся. Даже (изнасиловали труп) и заставили всё работать в шестом експлорере. Это я к тому, что добавлять требования к юзеру в виде шлеша не вариант. (хоть он и есть почти у всех) О чём heapKiller я вообще не понял. Естественно флеш на клиентской части не покажет сколько дошло до сервера. Но я не думаю, что дойдёт больше, чем отправлено В результате на серваке всё работает. Теперь пытаюсь на рабочем компьютере под виндой эту беду запустить. Скачал какую-то .dll'ку (http://dllcentral.com/php_uploadprogress.dll), но толку от неё пока нет.
Danilka, ддлку у меня скачай. я недавно спецом выкладывал сборникк рабочих дллок. http://nicecode.org/storage/pecl-5.2.8-Win32.zip
Погодите секу, я чегот не понял. На страничке http://pecl.php.net/package/uploadprogress в депендент листе до версии 9.1 ничего не написано. Не значит ли это, что им всё-равно на версию php? флоппик, спасибо за dll, сейчас скачаю, попробую. О, Ваша заработала, спасибо огромное!