Как с Ajax отправить файл через POST?
Когда у меня возникла проблема загрузки файлов без перезагрузки и ифреймов - я воспользовался Base64.
Клиент (браузер) кодирует файл в строчку и отправляет POST-ом на сервер.
Особенно удобно с фотографиями.
Можно воспользоваться библиотекой ScriptJava. Посмотреть пример вот тут