Question: Right now users have to two ways to send data to my application: upload a CSV file via browser, or via our API.

It would dramatically reduce duplication to use the API in both instances. Is there a way they could use the existing upload form, but instead of storing the CSV on the server, it would be processed via Javascript and sent to the API?

The solution would unfortunately have to be IE6 compatible.

Answer: 
There is no way to do this with IE6 (and in my opinion there is no reason to even try this).  

Possible workarounds:

* Embed the uploadform into a iframe (ugly)
* Use a FlashPlayer 9+/JavaApplet to perform the upload (requires plugin), but this also gives you the possibility to process the data before sending it.
Unfortunately, no, this is not possible with IE6. Reading local files is possible in HTML5, but IE has a long way to go...

Also- it is not required to store the CSV on the server. You can process the CSV dynamically in a servlet and use the API to store the data without storing the CSV on the server.