image upload controller and widget