add first work on fileupload

This is not fully functional, just need to merge this to integrate other features on ticket.