Ok, por lo que veo tu error esta en la funcion 'file_type()'
Como podras ver, obtiene la extension usando el substr, y comparando con todas extensiones minusculas. En caso de que subas una imagen con extension ".JPG" como lo guardar el microsoft paint, ya dejaria de funcionar.
Ademas, de la forma en que buscas el 1er punto del archivo ( con strpos ), si subis una imagen que tenga mas de 1 punto en su nombre, tambien tiraria error.
Intenta reemplazar tu funcion file_type por esta:
Código PHP:
function file_type($nombre) {
$image_info = getimagesize($nombre);
$tipoImagen = '';
switch ($image_info['mime']) {
case 'image/jpe':
case 'image/jpeg':
$tipoImagen = 'jpeg';
break;
case 'image/gif':
$tipoImagen = 'gif';
break;
case 'image/png':
$tipoImagen = 'png';
break;
}
return $tipoImagen;
}