image upload, end to end implemented (untested).