Поскольку CSV-файлы могут иметь несколько различных разделителей, я подозреваю, что CSV-файл просто распознается как текстовый файл (это правда).
Если вы видите текстовый файл, как вы точно знаете, что этоCSV файл?Если в тексте есть запятые, точки с запятой и т. Д.?Что, если они принадлежат какой-либо записи, а разделитель - это что-то еще (например, |, #, @ и т.,Таким образом, он вернет только то, в чем он уверен: файл является текстовым файлом.Таким образом, вы «только» получаете «text / plain».
Я не знаю эту библиотеку, но из документации / источника кажется, что вы могли бы дать подсказку, что *.csv
файлы имеют тип text/csv
mimeиспользуя Magic.addHint("csv", someMatcher)
.Обратите внимание, что вам, возможно, придется передать true
для вторых параметров, так как в противном случае эти подсказки могут быть проигнорированы (кажется, при просмотре источников).
Это все равно будет зависеть от правильности расширения файла, т.е.если кто-то загрузил файл .csv, который содержит что-то еще, вы получите неправильный тип MIME.
Однако, похоже, что JMimeMagic
в любом случае не будет выполнять проверку содержимого.По крайней мере, я не нашел много в источниках, которые я нашел в sourceforge / github.Есть только детектор текстовых файлов, поэтому вам, возможно, придется добавить свои собственные детекторы контента для других типов mime и форматов файлов.