Now supports uploads of various files.

Next would be to support proper upload cancilation, and error messages.

Also to re-factor a bit