You can use this:
Create form with attribute target='file_upload_iframe'.
Create iframe with attribute name='file_upload_iframe'.
The form will be submitted into the iframe and response of the POST request will be in the iframe. So you can check with jquery what in response (error, sucess or smth else) and show the message to user. Also you need to hide your iframе on production, but for debug you can display it. It's very useful.
And you can use something like this to check upload result:
$('document').ready(function()
{
$('iframe#file_upload_iframe').load(function()
{
callback(this);
});
});
Pluses:
This is crossbrowser method as I know.
Minuses:
The loading icon of browser tab will appear, but it is not so terribly, IMHO.
P.S. Also you can use plugins http://blueimp.github.com/jQuery-File-Upload/
7 trusted ajax file upload plugins using jquery
But some of them use flash...