Setting 0666in directories may not be what you want; -)
Linux 0777 0666 , , umask, . umask 0022, , 0644; .
, umask 0, , , , .
umask(0);
$zip = new ZipArchive;
if ($zip->open('upload/'. $username . $file_ext) === TRUE) {
$zip->extractTo('dir/' . $username);
$zip->close();
} else {
echo 'failed';
}