Вместо того, чтобы полагаться на расширение, отправленное клиентом, вы также можете определить тип файла, используя fileinfo (PHP> = 5.3), или если вы используете более старую версию PHP что-то вроде mime_content_type
Если у вас есть MIME-тип файла, это просто вопрос отображения (например, 'image / png' => 'png')
(На самом деле должно быть лучше по соображениям безопасности; если я правильно помню, $ _FILES ['...'] ['type'] отправляется клиентом и может быть подделан)