This page contains a demonstration of the Java Applet based File Uploader. The selected files are sent to a dummy URL (using a standard HTML form), and are ultimately ignored by the server as the purpose of this page is to showcase the applet actually performing the submission. At present, downloading the applet takes a few minutes. I am currently working on a Pack200 solution which should reduce download time to roughly 10% of what it is currently.

Trust

Unfortunately, if you wish to experience the applet, there is going to have to be some trust involved. In order for Java applets to access your local filesystem (in order to select what files to upload), the applet is digitally signed, and you are expected to accept the signature in order to authorize the Java runtime to have extra permission.

If you are running on a Linux or Unix (including BSD's) system, as long as you are not running as the "root" user, you should be fine. The *nix operating systems traditionally enforce fairly strict security, and the applet would probably only be able to access your home directory anyway. It is not possible, under these circumstances, to interfere with the core of the operating system and install or run any kind of trojan or virus.

If you are running under Windows, then you probably just need to hope that the developers (in this case me) is trustworthy. In general terms, Windows security is historically abysmal, typically taking the position of "all permissions by default". XP and Vista have made great strides in correcting this, but it requires you to be running as a restricted user.

Compared to Other Technologies

Many in technology have tried moving the industry to using HTML and JavaScript to promote web pages as a platform for full-blown applications. While great strides have been made, some of it is completely impossible. Granting JavaScript access to the local filesystem would be a monstrous mistake (look at the fiasco with scripting in Excel spreadsheets), and expecting entire sites to be "signed" would be infeasible given that many dynamic pages would need to be digitally signed in real-time.

In this way, we can see that Web 2.0 can never truly support complex file uploading. The standard HTML form tag supports selecting a single file at a time - rather cumbersome when trying to upload vast amounts of files at once.

A workable solution has been developed called SWFUpload - but even Flash has restrictions which would prevent it from offer the full range of services that can be accomplished under Java. For example, SWFUpload does provide a progress bar, but only once a file upload is complete. If one file is several megabytes in size, the site would appear to have stalled. By contrast, File Uploader provides feedback in real-time as each individual file is being uploaded.

Another potential solution might be Microsoft's Silverlight, however (being a Flash clone) it would be subject to the same restrictions as Flash, and would have the added restriction of not being truly cross-platform.

In the end, Java applets simply provide us with every single tool we need to make a simple yet feature-rich interface.

Visit my Friends and Family

If you've enjoyed my site, please take a moment to visit my friends and family, many of whom have some interesting insights, and entertaining thoughts and ideas.