Похоже, вы спрашиваете, можете ли вы определить тип файла по его содержимому.
Большинство решений действительно пытаются использовать расширение файла, но существует слишком много различных типов файлов, чтобы их можно было надежно идентифицировать.
Большинство подходов используют первые несколько байтов файла, чтобы определить, какие они есть.
Здесь - один список, здесь другой.
Если вас беспокоит только текст против двоичного кода, см. этот ТАК вопрос и ответы.
См. этот SO ответ для проверки, является ли файл JPG - этот подход может быть расширен для использования других заголовков файла, как в первых двух ссылках в этом ответе.