че-то я туплю, конечно же $.post
в новых браузерах (c новым XMLHttpRequest, их примерно 70%) есть объекты FormData
fd = new FormData()
fd.append('file1', file_input.files[0])
$.ajax({..., data: fd, ...}) -- по другому не нашел как
в старых браузерах без каких-то бредовых хаков не получится (лучше через плагины, не знаю какие)