J'écris un serveur de fichiers statiques rapide et sale à l'aide de Jetty. Je dois définir le type de contenu pour chaque réponse:HttpServletRequest: Comment déterminer le type de contenu de l'actif demandé
HttpServletResponse.setContentType("content/type");
Pour une demande de fichier donné, comment puis-je déterminer de façon fiable ce type de contenu pour définir? Est-ce une question d'examen de l'extension de fichier ou existe-t-il une méthode plus sophistiquée? (Par exemple, s'il n'y a pas d'extension de fichier ou l'extension ne reflète pas le type de contenu?)
Merci Richard
Je sais que deux solutions: - [javax.activation.MimetypesFileTypeMap] (http://download-llnw.oracle.com/javase/6/docs/api/javax/activation/MimetypesFileTypeMap.html) du cadre d'activation JavaBeans (semble disponible dans Java SE 6?!) - [Apache Tika] (http://tika.apache.org/) Un [tutoriel intéressant] (http://www.rgagnon.com/javadetails/java-0487.html) à propos de ce sujet avec beaucoup de différentes solutions, je n'ai pas essayé. – Kartoch
Vous devriez regarder dans cette bibliothèque. Il fait beaucoup de choses (extensions de fichiers, données magiques et reniflage de contenu) pour déterminer le type de contenu: [Mime Type Detection Utility] (http://sourceforge.net/projects/mime-util/) – naikus
Vous ne savez pas si cela correspond vos besoins, mais j'ai récemment publié mon paquet [SimpleMagic] (http://256.com/sources/simplemagic/) qui implémente la même fonctionnalité que la commande de fichier Unix (1). Il utilise des fichiers de configuration internes ou peut lire '/ etc/magic',// usr/share/fichier/magic', ou d'autres fichiers magic (5) et déterminer le contenu du fichier' File', 'InputStream', ou' byte [] '. L'emplacement des [sources github] (https://github.com/j256/simplemagic), javadocs, et de la documentation sont disponibles sur la [page d'accueil] (http://256.com/sources/simplemagic/). Avec SimpleMagic, vous faites quelque chose comme le – Gray