मैं जावा पुस्तकालय की खोज कर रहा हूं जो आपको फ़ाइल सामग्री (बाइट सरणी) देखकर माइम प्रकार बताता है। मुझे jmimemagic का उपयोग करके यह प्रोजेक्ट मिला और यह अब नए फ़ाइल प्रकारों का समर्थन नहीं करता है (उदाहरण के लिए एमएस वर्ड डॉक्स प्रारूप) क्योंकि यह अब निष्क्रिय है (2006 से)।जावा लाइब्रेरी फ़ाइल सामग्री से माइम प्रकार खोजने के लिए
उत्तर
सामग्री पहचान के लिए अपाचे टिक का उपयोग करें। कृपया नीचे दिए गए लिंक को ढूंढें। http://tika.apache.org/0.8/detection.html। हम इतने सारे जार निर्भरता है जो आप जब आप Maven
ByteArrayInputStream bai = new ByteArrayInputStream(pByte);
ContentHandler contenthandler = new BodyContentHandler();
Metadata metadata = new Metadata();
Parser parser = new AutoDetectParser();
try {
parser.parse(bai, contenthandler, metadata);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TikaException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Mime: " + metadata.get(Metadata.CONTENT_TYPE));
return metadata.get(Metadata.CONTENT_TYPE);
हो सकता है कि किसी के लिए उपयोगी है, जो साथ ही सबसे अधिक इस्तेमाल किया कार्यालय प्रारूपों की जरूरत है (और उपयोग नहीं करता है अपाचे टीका) का उपयोग कर टीका निर्माण पा सकते हैं:
public class MimeTypeUtils {
private static final Map<String, String> fileExtensionMap;
static {
fileExtensionMap = new HashMap<String, String>();
// MS Office
fileExtensionMap.put("doc", "application/msword");
fileExtensionMap.put("dot", "application/msword");
fileExtensionMap.put("docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
fileExtensionMap.put("dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template");
fileExtensionMap.put("docm", "application/vnd.ms-word.document.macroEnabled.12");
fileExtensionMap.put("dotm", "application/vnd.ms-word.template.macroEnabled.12");
fileExtensionMap.put("xls", "application/vnd.ms-excel");
fileExtensionMap.put("xlt", "application/vnd.ms-excel");
fileExtensionMap.put("xla", "application/vnd.ms-excel");
fileExtensionMap.put("xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
fileExtensionMap.put("xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template");
fileExtensionMap.put("xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12");
fileExtensionMap.put("xltm", "application/vnd.ms-excel.template.macroEnabled.12");
fileExtensionMap.put("xlam", "application/vnd.ms-excel.addin.macroEnabled.12");
fileExtensionMap.put("xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12");
fileExtensionMap.put("ppt", "application/vnd.ms-powerpoint");
fileExtensionMap.put("pot", "application/vnd.ms-powerpoint");
fileExtensionMap.put("pps", "application/vnd.ms-powerpoint");
fileExtensionMap.put("ppa", "application/vnd.ms-powerpoint");
fileExtensionMap.put("pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation");
fileExtensionMap.put("potx", "application/vnd.openxmlformats-officedocument.presentationml.template");
fileExtensionMap.put("ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow");
fileExtensionMap.put("ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12");
fileExtensionMap.put("pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12");
fileExtensionMap.put("potm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12");
fileExtensionMap.put("ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12");
// Open Office
fileExtensionMap.put("odt", "application/vnd.oasis.opendocument.text");
fileExtensionMap.put("ott", "application/vnd.oasis.opendocument.text-template");
fileExtensionMap.put("oth", "application/vnd.oasis.opendocument.text-web");
fileExtensionMap.put("odm", "application/vnd.oasis.opendocument.text-master");
fileExtensionMap.put("odg", "application/vnd.oasis.opendocument.graphics");
fileExtensionMap.put("otg", "application/vnd.oasis.opendocument.graphics-template");
fileExtensionMap.put("odp", "application/vnd.oasis.opendocument.presentation");
fileExtensionMap.put("otp", "application/vnd.oasis.opendocument.presentation-template");
fileExtensionMap.put("ods", "application/vnd.oasis.opendocument.spreadsheet");
fileExtensionMap.put("ots", "application/vnd.oasis.opendocument.spreadsheet-template");
fileExtensionMap.put("odc", "application/vnd.oasis.opendocument.chart");
fileExtensionMap.put("odf", "application/vnd.oasis.opendocument.formula");
fileExtensionMap.put("odb", "application/vnd.oasis.opendocument.database");
fileExtensionMap.put("odi", "application/vnd.oasis.opendocument.image");
fileExtensionMap.put("oxt", "application/vnd.openofficeorg.extension");
}
public static String getContentTypeByFileName(String fileName) {
// 1. first use java's buildin utils
FileNameMap mimeTypes = URLConnection.getFileNameMap();
String contentType = mimeTypes.getContentTypeFor(fileName);
// 2. nothing found -> lookup our in extension map to find types like ".doc" or ".docx"
if (!StringUtils.hasText(contentType)) {
String extension = FilenameUtils.getExtension(fileName);
contentType = fileExtensionMap.get(extension);
}
return contentType;
}
}
आपको पता नहीं है कि मैं इस बारे में कितना समय ढूंढ रहा हूं। आपका बहुत बहुत धन्यवाद! – Mike
इसने मुझे नए एमएस ऑफिस एक्सटेंशन को सही ढंग से पहचानने के लिए मेरे अनुप्रयोगों में से किसी एक को अपडेट करने के लिए एक अनोखा समय बचाया! धन्यवाद! – Saggio
मुझे 'if (! StringUtils.hasText (contentType)) {'to' if (StringUtils.isBlank (contentType)) {'बदलना था। कोडेज़ के लिए धन्यवाद! –
मैं javax.activation.MimetypesFileTypeMap
का उपयोग करता हूं। यह एक छोटे से सेट से शुरू होता है: $JRE_HOME/lib/content-types.properties
, लेकिन आप स्वयं को जोड़ सकते हैं। MimetypesFileTypeMap
के जावाडोक में दिखाए गए प्रारूप में mime.types
फ़ाइल बनाएं (मैंने नेट से बड़ी सूची के साथ शुरुआत की, इसे मालिश किया, और जोड़े गए जोड़े गए प्रकार)। अब आप अपने mime.types
फ़ाइल को खोलकर अपने कोड में जोड़ सकते हैं और अपनी सामग्री को अपने मानचित्र में जोड़ सकते हैं। हालांकि आसान समाधान आपके mime.types
फ़ाइल को अपने जार के META-INF
में जोड़ना है। java.activation
इसे स्वचालित रूप से उठाएगा।
- 1. फ़ाइल/माइम प्रकार का पता लगाने के लिए नेट लाइब्रेरी
- 2. ics फ़ाइल माइम प्रकार
- 3. माइम प्रकार
- 4. .txt फ़ाइलों के लिए माइम प्रकार?
- 5. PHP दूरस्थ फ़ाइल माइम-प्रकार
- 6. माइम-प्रकार
- 7. खोजने सामग्री
- 8. wsdl फ़ाइल का माइम-प्रकार क्या है?
- 9. माइम-प्रकार <-> फ़ाइल एक्सटेंशन मैपिंग
- 10. Zend_Form - फ़ाइल 'foto.jpg' की माइम प्रकार
- 11. ऐप्पल iWork माइम प्रकार
- 12. वाईएएमएल माइम प्रकार?
- 13. php के साथ फ़ाइल पर माइम प्रकार कैसे सेट करें?
- 14. PHP सही माइम प्रकार
- 15. अपाचे 2 सर्वर माइम प्रकार
- 16. सीधे लाइब्रेरी बनाने के लिए जावा लाइब्रेरी?
- 17. जावा के लिए यूपीएनपी लाइब्रेरी
- 18. जावा के लिए गणित लाइब्रेरी
- 19. Filepicker.io - वीडियो/* माइम प्रकार क्रोम
- 20. मैं "माइम-टाइप (सामग्री-प्रकार?)" फ़ाइलों को कैसे ढूंढ सकता हूं?
- 21. ASP.NET, सी #, आईआईएस, माइम प्रकार, फ़ाइल अपलोड करें सशर्त
- 22. ज़िप माइम प्रकार, जब लेने के लिए जो एक
- 23. एंड्रॉयड: प्रकार से विचारों को खोजने के लिए कैसे
- 24. "सामग्री-प्रकार: टेक्स्ट/सादा" फ़ाइल को डाउनलोड करने के लिए
- 25. जावा लाइब्रेरी के लिए लॉगर
- 26. जावा में सामग्री प्रकार सेट करना
- 27. एक्सेल फ़ाइल लिखने के लिए लाइब्रेरी
- 28. कैसे एक फ़ाइल खोजने के लिए SSH
- 29. निर्धारित आधार 64 सामग्री से छवि प्रकार
- 30. जावा में वास्तविक प्रकार/माइम प्रकार कैसे प्राप्त करें (जैसे PHP में finfo \ mime_content_type)?
http://sourceforge.net/projects/mime-util/files/mime-util/mime-util-2.1.3/ – khachik
मुझे यह संदर्भित प्रश्न के लिए एक डुप्लिकेट नहीं लगता है क्योंकि लेखक स्पष्ट रूप से पूछता है फ़ाइल सामग्री द्वारा पता लगाने जबकि अन्य प्रश्न के समाधान एक फ़ाइल (समावेशी फ़ाइल नाम) का संदर्भ लें। – danielp
समाधान [यहां] के बारे में क्या है (http://www.rgagnon.com/javadetails/java-0487.html)। क्या वे आपके लिए काम नहीं करते हैं? – javamonkey79