Определить тип файла по данным? - PullRequest
1 голос
/ 20 октября 2010

У меня есть данные, поступающие через байтовый поток. Я хочу определить его тип файла, поэтому я знаю, как его проанализировать. В настоящее время меня интересуют только HTML или изображения, все остальное можно отбросить.

Какой эффективный метод разграничения между ними? А что, если я хочу расширить это, чтобы включить другие типы файлов?

Ответы [ 2 ]

1 голос
/ 20 октября 2010

В этой статье stackoverflow обсуждается та же проблема, и она помечена Python (хотя это не имеет ничего общего с языками программирования). Они упоминают эту статью о сигнатурах типов файлов (на самом деле это не сигнатуры, а общее начальное магическое число для известных типов файлов). Из соображений безопасности я бы порекомендовал получать поток из надежного источника только в том случае, если вы собираетесь настроить логику вашего приложения нетривиальным способом.

Кроме того, поскольку вы просто проверяете, является ли файл html или двоичным (на данный момент), вы можете проверить наличие 0 в потоке байтов (байт, а не символ) или просто любой недопустимый символ HTML (например, 0x1).

1 голос
/ 20 октября 2010

Существует оболочка для libmagic , но я не знаю, действительно ли она жива / работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...