Need to test, but this is the rough shape of the upload thing