     # Called just before the file is sent. Gets the xhr object as second
     # parameter, so you can modify it, for example to add a CSRF token.
     sending: o.noop
+    
+    # Called just before adding the file and sending the whole request to the
+    # server.
+    # This is the ideal place to add additional data to be sent.
+    # Receives `file`, `xhr` and `formData`
+    preparingupload: o.noop
     
     # When the complete upload is finished and successfull
     # Receives `file`

    "error"
    "processingfile"
    "uploadprogress"
    "sending"
    "success"
    "complete"

  uploadFile: (file) ->
    xhr = new XMLHttpRequest()

    xhr.open "POST", @options.url, true

    handleError = =>
