Added uploadFileOrDirectory()