class Upload {
public static function save($dir) {
if (!file_exists($dir)) {
mkdir($dir, 0777, true);
}
$tmp = reset($_FILES);
$tmp = reset($tmp);
if (is_array($tmp)) {
return self::saveMultiple($dir);
} else {
return self::saveSingle($dir);
}
}
protected static function saveMultiple($dir) {
foreach ($_FILES as $key => $value) {
foreach ($value as $kk => $vv) {
foreach ($vv as $k => $v) {
$newArr[$k][$kk] = $v;
}
}
}
$names = [];
foreach ($newArr as $key => $value) {
$filename = $value['tmp_name'];
$uniqueName = md5(microtime(true) . mt_rand(1e9, 9e9));
$ext = pathinfo($value['name'], PATHINFO_EXTENSION);
$fn = "$uniqueName.$ext";
$dest = "files/$fn";
$suc = move_uploaded_file($filename, $dest);
if ($suc === true) {
$names[] = $fn;
}
}
return $names;
}
protected static function saveSingle($dir) {
foreach ($_FILES as $key => $value) {
$filename = $value['tmp_name'];
$uniqueName = md5(microtime(true) . mt_rand(1e9, 9e9));
$ext = pathinfo($value['name'], PATHINFO_EXTENSION);
$fn = "$uniqueName.$ext";
$dest = "$dir/$fn";
$suc = move_uploaded_file($filename, $dest);
if ($suc === false) {
return false;
}
}
return $fn;
}
}