add upload file logic, add file upload view