Hi all,
I'm working on web application. There is one place where the user can upload files with the HTTP protol. There is a choice between the classic html file upload control and a java applet to upload the files.
The classic html file upload isn't great because you can only select one file at a time, and it's quite hard to get any progress indication during the actual upload (I finally got it using a timer refreshing a progress indicator with data fetched from the server via an ajax call). The advantage : it's always working
With the java applet I can do more things : select multiple files at once (even a folder), compress the files, get a real progress bar, drag'n'drop of files on the applet, etc...
BUT there are a few drawbacks :
- it's a nightmare to get it to work properly on Mac Safari and Mac Firefox (Thanks Liveconnect)
- the UI isn't exactly the native UI and some people notice that
- the applet isn't as responsive as it should (could be my fault, but everything looks ok to me)
- there are bugs in the JAVA UrlConnection class with https, so I use the Apache common http client to do the actual http upload : but it's quite big a package and slows down the download of the jar file
- the Apache common http client has sometimes trouble going through proxies
- the java runtime is quite big
Well I've been maintaining this java applet for a while but now I'm fed up with all the drawbacks, and considering writing/buying a completely new component to upload theses files.
So here comes my question :
If you had the following requirement :
- upload multiple files easily from a browser, through HTTP or HTTPS
- compress the files to reduce the upload time
- upload should work on any platform, with native UI
- must be able to upload huge files, up to 2gb at least
- you have carte blanche on the technology
What technology/compontent would you use ?
Edit :
- I forgot : Drag'n'Drop of files on the component would be a great plus.
- It looks like there are a lot of issues related to bugs with the Flash Player (swfupload known issues). Proper Mac support and upload through proxies with authentication are options I can not do without. This would probably rule out all flash based options :-( .
- I rule out all HTML/Javascript-only options because you can't select more than one file at a time with the classic html control : it's such a pain to click n-times the "browse" button when you want to select multiple files in a folder.