Basic client upload functionality