2015-08-14 3 views
2

Я занимаюсь созданием веб-приложения. Он позволяет загружать файл .txt или .log (например, журналы IIS).Есть ли надежный способ определения текстового файла?

Текущий способ, который я проверяю, если это .txt или .log, проверяет расширение файла. Теперь мне это не нравится, поскольку он позволяет кому-либо менять virus.exe на virus.txt, и он будет загружаться.

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

+1

Остерегайтесь UTF-16. – SLaks

+0

вы можете проверить тип файла – user1666620

+0

Вы можете проверить первые 256 байтов файла. См. [Предыдущий ответ] [1] . [1]: http://stackoverflow.com/questions/58510/using-net-how-can-you-find-the-mime-type-of-a-file-based-on-the- file-signature –

ответ

0

Насколько я знаю, нет идеального решения.

Вы можете прочитать часть байтов из файла и сделать из этого обоснованное предположение о типе файла. Попробуйте прочитать через ответы от этого SO сообщения:

Using .NET, how can you find the mime type of a file based on the file signature not the extension

+0

Должно быть лучшее решение, чем 6 летний ... –

Смежные вопросы