Вообще это плохая тема - хранить картинки в бд - во-первых, это очень накладно по месту + результаты фетча получаются неподъемные, и, как заметил
Stalker_RED, это поле имеет статус Deprecated. Но, раз уж так получилось, то пишите картинку в файл в binary-safe режиме, а затем возьмите ее mime type:
$imageFile = fopen('image', 'wb');
fwrite($imageFile, $fetchedImageFromDb);
fclose($imageFile);
$mimeType = exif_imagetype('image');
switch ($mimeType){
case IMAGETYPE_GIF:{
rename('image', 'image.gif');
break;
}
case IMAGETYPE_BMP:{
rename('image', 'image.bmp');
break;
}
case IMAGETYPE_JPEG:{
rename('image', 'image.jpeg');
break;
}
case IMAGETYPE_PNG:{
rename('image', 'image.png');
break;
}
default:{
throw new Exception('Unhandled image type');
}
}
остальные возможные типы можно посмотреть в документации к exif_imagetype():
php.net/manual/ru/function.exif-imagetype.php