After quite a bit of searching, I found a way to track the upload progress when posting some stuff through FormData. In this case, I assume a recent browser with FormData and xhr2.
# get an original xhr object xhr = $.ajaxSettings.xhr() # add the listener for progress if xhr.upload xhr.upload.addEventListener "progress", (ev) -> # do some stuff using ev.position and ev.totalSize # get a file to upload file = $("#file").files form = new FormData() form.append('file', file) # upload the file using jquery.ajax upload = $.ajax url: 'upload' type: 'POST' xhr: -> xhr data: form contentType: false # prevent jquery to mess up with processData: false # the upload by trying to serialize the payload upload.done -> console.log "file uploaded ^^"
And that's it. For more complete version, plugins exists (with iframe transport and all that jazz in case of a paleo-browser)