में उचित फ़ाइल एक्सटेंशन को निर्धारित करने के लिए कैसे करें मैं एक अमेज़ॅन एस 3 बाल्टी में फाइल अपलोड कर रहा हूं और इनपुटस्ट्रीम और एक स्ट्रिंग तक पहुंच प्राप्त कर रहा हूं जिसमें फ़ाइल का एमआईएमई प्रकार है लेकिन मूल फ़ाइल नाम नहीं है। S3 पर फ़ाइल को धक्का देने से पहले वास्तव में फ़ाइल नाम और एक्सटेंशन बनाने के लिए मेरे ऊपर निर्भर है। क्या एमआईएमई प्रकार से उपयोग करने के लिए उपयुक्त एक्सटेंशन निर्धारित करने के लिए कोई पुस्तकालय या सुविधाजनक तरीका है?जावा
मैंने अपाचे टिका लाइब्रेरी के कुछ संदर्भ देखे हैं, लेकिन यह ओवरकिल जैसा लगता है और मैं इसे अभी तक फ़ाइल एक्सटेंशन का सफलतापूर्वक पता लगाने में सक्षम नहीं हूं। मैं क्या इकट्ठा करने के लिए ऐसा लगता है इस कोड की तरह काम करना चाहिए कर लिया है, लेकिन जब मेरी प्रकार चर "image/jpeg"
MimeType mimeType = null;
try {
mimeType = new MimeTypes().forName(type);
} catch (MimeTypeException e) {
Logger.error("Couldn't Detect Mime Type for type: " + type, e);
}
if (mimeType != null) {
String extension = mimeType.getExtension();
//do something with the extension
}
क्या आप वाकई फ़ाइल एक्सटेंशन सेट करने की आवश्यकता है? यदि आप एमआईएमई प्रकार जानते हैं, तो आप इसे उचित 'सामग्री-प्रकार' के साथ S3 पर अपलोड कर सकते हैं, और एक्सटेंशन (आमतौर पर) अप्रासंगिक हो जाता है। – willglynn
आप सही हैं, मैंने अभी जांच की है, और S3 के लिए ऑब्जेक्टमैटाडाटा में सामग्री-प्रकार सेट करना मेरे मामले में चाल है। मैं अभी भी सवाल का जवाब जानना चाहता हूं, ऐसा लगता है कि यह भविष्य में काम में आ सकता है। – rphutchinson
पर्याप्त मेला। फाइल एक्सटेंशन के लिए एमआईएमई प्रकारों का कोई भी एक सही मैपिंग ™ नहीं है - कुछ प्रकारों में कई एक्सटेंशन होते हैं, कुछ एक्सटेंशन में कई प्रकार होते हैं - इसलिए जब मैं डेटा स्टोर का उपयोग कर रहा हूं जो स्वतंत्र रूप से दोनों को जारी रख सकता है, तो मैं केवल वही स्टोर करने की कोशिश करता हूं जो मुझे पता है और अनुमान लगाने से बचना। – willglynn