Functional photo upload