file upload service and directive