Upload service with iframe fallback and some nice directives to go with it.