JQuery बस सबसे ब्राउज़रों में इस्तेमाल किया अंतर्निहित फ़ाइल एपीआई लपेटता के लिए jQuery जोड़ा गया, तो वहाँ कोई अंतर कैसे JQuery और जावास्क्रिप्ट फ़ाइलें और माइम प्रकार संभाल है। यहाँ फ़ाइल एपीआई युक्ति है:
http://www.w3.org/TR/FileAPI/#dfn-type
File
उद्देश्य यह है कि आप Blob
वस्तु से विरासत में मिली जोड़ तोड़ कर रहे हैं प्रकार संपत्ति, और ब्राउज़र ब्लॉब (बाइट सरणी) का उपयोग करता माइम प्रकार निर्धारित करने के लिए।
उस कार्य को पूरा करने के लिए प्रत्येक ब्राउज़र बाइट सरणी से माइम प्रकार को "पढ़ने" के लिए एल्गोरिदम को स्नीफ करने वाली फ़ाइल लागू करता है, और यदि माइम प्रकार मेल नहीं खाता है, तो यह उपरोक्त आपके परिदृश्य में एक खाली स्ट्रिंग वापस कर देगा। तो अब
https://mimesniff.spec.whatwg.org/
कारण है कि यह टीएआर, ज़िप और RAR फ़ाइलों के लिए काम नहीं करता है अगर आप सोच रहे हैं, और क्यों यह कुछ लोगों को और नहीं के लिए के लिए काम करता है:
यहाँ पूर्ण एल्गोरिथ्म कल्पना है आप? .. क्योंकि फाइल एल्गोरिदम स्नीफिंग स्पष्ट रूप से सही नहीं है।
यह बाइट पैटर्न मिलान का उपयोग करता है, और यह पर्याप्त विश्वसनीय नहीं लगता है।
उदाहरण के लिए मैं 8 बॉक्स मेरी खिड़कियों पर WinRAR का इस्तेमाल किया है एक फ़ाइल संपीड़ित करने के लिए, और बनाई गई फ़ाइल के प्रारंभिक बाइट्स हैं:
52 61 72 21 1A 07 00
हालांकि, यह के रूप में पहचान करने के लिए।RAR ब्राउज़र बाइट पैटर्न मिलान एल्गोरिथ्म उम्मीद
52 61 72 20 1A 07 00
आप देख वहाँ एक मामूली अंतर है, और जब मैं ब्राउज़र करने के लिए अपने RAR फ़ाइल को अपलोड ऊपर अपने कोड का उपयोग, फायरफॉक्स माइम पहचान करने में सक्षम नहीं था के रूप में टाइप करें, और मुझे टाइप प्रॉपर्टी में खाली स्ट्रिंग मिली है।
हालांकि, जब मैं एक ही मशीन डिफ़ॉल्ट सेटिंग के साथ यह 50 4B 03 04
की एक प्रारंभिक बाइट सरणी अनुक्रम उस ज़िप बाइट पैटर्न एल्गोरिथ्म द्वारा की उम्मीद के साथ मिलान उत्पन्न करता है, और पर WinRar का उपयोग कर एक ज़िप फ़ाइल पैक जब मैं यह ऊपर अपने कोड का इस्तेमाल किया आवेदन/ज़िप के रूप में सही ढंग से माइम प्रकार पता लगाने में सक्षम हो गया था!
तो जैसा कि आप मेरी व्याख्या से देखते हैं, यह क्रमबद्धता का विषय है, और एल्गोरिदम की "अपरिपक्वता" जो ब्राउज़र में माइम एक्सटेंशन के साथ धारावाहिक बाइट से मेल खाता है।
ऊपर उल्लेख किया है सब कुछ के आधार पर, मैं माइम सूँघने पर भरोसा नहीं की सलाह देते हैं, और बदले में माइम प्रकार या मौजूदा पुस्तकालयों निर्धारित करने के लिए अपने कस्टम कोड का प्रयोग करेंगे। आप सर्वर-साइड या क्लाइंट-साइड दृष्टिकोण का उपयोग कर सकते हैं।
आप ग्राहक आप निम्नलिखित जे एस पुस्तकालय इस्तेमाल कर सकते हैं पर कायम करना चाहते हैं:
https://github.com/rsdoiel/mimetype-js
और फिर माइम प्रकार की खोज कर कोड की एक पंक्ति की बात होगी:
यहाँ, एक काम कर फिडल है माइम प्रकार js उपयोग करने के लिए अपने उदाहरण के उन्नयन:
http://jsfiddle.net/jd8h7wvs/4/
आप अपने बेला के लिए jQuery में नहीं जोड़ा। पुष्टि की कि टैर फाइलों के साथ काम न करें। – DanFromGermany
आप किस ऑपरेटिंग सिस्टम पर हैं? यह हो सकता है कि ब्राउज़र माइम प्रकार हल करने ऑपरेटिंग सिस्टम के लिए सौंपने का है, या वहाँ कि फाइल एक्सटेंशन और उसके माइम प्रकार के बीच ब्राउज़र विन्यास में कोई संबंध नहीं है। अपने ब्राउज़र को कॉन्फ़िगर करने का प्रयास करने के लिए यह पता लगाने के लिए कि कौन सा बाहरी प्रोग्राम .tar या .arar खोलना चाहिए। शायद वह मदद करेगा? –
यह rar और टार के लिए ठीक है, यह रिटर्न: प्रकार MacOS/क्रोम पर आवेदन/x-rar (या एक्स-टार) है। आप किस ओएस/ब्राउज़र पर इसका परीक्षण कर रहे हैं? – enguerranws