Con jquery.post(), i dati vengono effettivamente inviati alla pagina del controller, proprio come se avessi fatto clic su "invia". Il problema è che i caricamenti di file non possono (ancora) essere elaborati con javascript (l'unica eccezione è ff 4, credo).
La migliore soluzione che ho trovato per un'esperienza utente coerente è questo plugin:http://jquery.malsup.com/ modulo/
Gestisce senza problemi il caricamento tramite iframe ed è piuttosto leggero. Usa la sua funzione invece di postare e andrà tutto bene.