photo upload, preserves context