Проверка файлов / получение истинного типа файла в Java / Groovy? - PullRequest
3 голосов
/ 09 марта 2011

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

По сути, мне действительно нужно проверять PDF-файлы, изображения и некоторые типы файлов Microsoft Word. Я слышал об использовании imagemagick и отлове исключений для тестирования изображений, но как насчет других?

Есть идеи?

Ответы [ 3 ]

5 голосов
/ 09 марта 2011

Есть несколько методов для получения типа MIME на этой странице здесь

Первая пара примеров предполагает тип MIME на основе расширения файла и, как говорится, более надежныйметод будет использовать Apache Tika Framework , который поддерживает много типов файлов .

Вот пример использования Tika (в Groovy):

// Grab tika and all its dependencies...
// takes a while on first run, as it pulls in LOADS of dependencies
@Grab( 'org.apache.tika:tika-core:0.9' )
@Grab( 'org.apache.tika:tika-parsers:0.9' )
import org.apache.tika.Tika

println( new Tika().detect( new File( 'tim.tiff' ) ) )
println( new Tika().detect( new File( 'tim.renamedtiff' ) ) )

Это выводит:

15:15:56 [tim_yates@mac] TikaTest $ groovy test.groovy 
image/tiff
image/tiff
1 голос
/ 26 октября 2015

MimetypesFileTypeMap работает как шарм в groovy:

import javax.activation.MimetypesFileTypeMap

String contentType = new MimetypesFileTypeMap().getContentType("foo.gif")
println contentType

Результат: image / gif

0 голосов
/ 14 сентября 2013
file.toURL().openConnection().getContentType()

Файл является экземпляром java.io.File

Вот и все!

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