File upload from local or url