Вы в значительной степени разобрались, как это сделать. Основная проблема в том, что у вас обычно нет доступа к размеру загружаемого файла, пока он не завершит загрузку.
Есть обходные пути для этого:
Включив APC, вы получите доступ к этой информации, если включите поле с именем «APC_UPLOAD_PROGRESS» и будете использовать apc_fetch () для получения записи кэша со статусом.
Есть также плагин uploadprogress, но он не очень хорошо документирован и не работает в Windows (последний раз я проверял).
Альтернативой является использование Flash для этого. Смотрите сценарии, такие как FancyUpload .
Прежде чем появился APC, мне пришлось написать CGI-скрипт на C, который записывал информацию в текстовый файл. APC кажется гораздо лучшим способом сделать это сейчас.
Надеюсь, это поможет.