Flexible class for handling single and multiple uploads, rename duplicated files, restrict types of file and size.