Если вас интересует, как все это вообще работает на клиент-сайте, вот оно:
Все решения подключают форму через javascript и меняют цель формы на вновь созданный, невидимый IFRAME. Затем они могут свободно использовать AJAX для запроса некоторого статуса файла с сервера.
Трюк с IFRAME необходим, потому что все скрипты, работающие в окне, выполняющем загрузку, будут зависать до тех пор, пока не будет завершен запрос, когда файл будет полностью загружен.