2012-02-16 15 views
9

मैं मोबाइल और डेस्कटॉप ब्राउज़र दोनों के लिए एक एप्लीकेशन विकसित कर रहा हूं। मैं सोच रहा हूं कि क्या कोई ब्राउज़र यह देखने के लिए है कि कोई ब्राउज़र फ़ाइल अपलोड करने का समर्थन करता है या नहीं। मैं विशेष रूप से फीचर डिटेक्शन के लिए देख रहा हूं और ब्राउजर डिटेक्शन नहीं। क्या पता लगाने का कोई तरीका है?यह पता लगाने के लिए कि ब्राउज़र फ़ाइल अपलोड करने का समर्थन करता है या नहीं? (मोबाइल + डेस्कटॉप)

सर्वर-साइड या क्लाइंट साइड ठीक है।

धन्यवाद

उत्तर

10

क्लाइंट पक्ष जावास्क्रिप्ट:

<input type="file" name="file" value="" id="fileUploadField1">  
<script type="text/javascript" charset="utf-8"> 
    if (document.getElementById('fileUploadField1').disabled) 
     { document.write('your device does not allow uploads');  } 
     else 
     { document.write('your device does allow uploads');  } 
</script> 
+0

बहुत अच्छा काम करता है! –

+0

अपने आप को देखने के लिए, इसे अपने iDevice से यहां जाएं: http://jsfiddle.net/Q2b8E/embedded/result/ –

+0

यह दृष्टिकोण कुछ उपकरणों पर झूठी सकारात्मकता देगा - विल्जामी के उत्तर – codebox

5

आप forms-fileinput विस्तार के साथ Modernizr ढांचे का उपयोग कर सकते हैं। कोशिश करो।

if Modernizr.fileinput 
    // you can use file inputs 

जाएँ Modernizr download page और जाँच forms-fileinput एक्सटेंशन (विस्तार "गैर-प्रमुख का पता लगाता है" खंड)।

+0

क्या आप अपने उत्तर में कुछ आधुनिक उदाहरण और फ़ाइल एपीआई एक्सटेंशन का उपयोग करने के उदाहरण के बारे में कुछ उदाहरण शामिल कर सकते हैं? उदाहरण के लिए, एक्सटेंशन एक बार फ़ाइलreader परीक्षण जोड़ता है, तो मैं इसका उपयोग कैसे करूं? –

+0

मैंने जल्दबाजी में इसे कम किया लेकिन कुछ और शोध किए जाने के बाद मुझे एहसास हुआ कि यह एक अच्छा जवाब है, और बेवकूफ स्टैक ओवरफ्लो मुझे इसे वापस वोट करने नहीं देगा। क्षमा करें :( –

+0

यह ठीक है। 1 डाउनवोट मुझे चोट नहीं पहुंचाता है। कम से कम उत्तर आपको कुछ तरीकों से मदद कर सकता है। – Raptor

7

आप मोबाइल पर वर्तमान इनपुट प्रकार के बारे में इस लेख = फ़ाइल समर्थन पढ़ने के लिए दिलचस्पी हो सकती है और यह कैसे पता लगाने के लिए: http://viljamis.com/blog/2012/file-upload-support-on-mobile/ (पता लगाने के वर्तमान पर काम करने परीक्षण किया जाता है ~ 120 विभिन्न मोबाइल ब्राउज़र/मोबाइल ओएस संयोजन)।

असल में, हम केवल आधुनिक पहचान के रूप में समान पहचान का उपयोग कर रहे हैं, लेकिन उन मोबाइल ब्राउज़र को फ़िल्टर करने के लिए बैकअप के रूप में UA पहचान का उपयोग करें जो झूठी रिपोर्ट का समर्थन करते हैं (वास्तव में ऐसा लगता है कि यह वास्तव में इसका पता लगाने का कोई अन्य तरीका नहीं है इन दोनों का उपयोग करके, सुविधा का पता लगाने और ब्राउज़र पहचान)।

+0

आपका स्वीकार्य उत्तर से एक बेहतर समाधान है और मैं इस प्रश्न को किसी भी व्यक्ति को स्वीकार किए गए समाधान के बजाय इस समाधान का उपयोग करने पर विचार करने के लिए निर्देशित करता हूं। –

1

Modernizr अब फ़ाइल अपलोड समर्थित हैं या नहीं, इसके लिए एक चेक का समर्थन करता है।

से: What is the best way to check if user can upload files?

if(Modernizr.fileinput) { 
    //file input available! 
} else { 
    //No file input :(
} 

आप इस लाइब्रेरी के आकार के बारे में चिंतित हैं, तो आप हमेशा एक घटक एक समय में प्राप्त कर सकते हैं - http://modernizr.com/download/ ... या तुम सिर्फ कोड वे का उपयोग कॉपी कर सकते हैं: https://github.com/Modernizr/Modernizr/blob/master/feature-detects/forms/fileinput.js

if(navigator.userAgent.match(/(Android (1.0|1.1|1.5|1.6|2.0|2.1))|(Windows Phone (OS 7|8.0))|(XBLWP)|(ZuneWP)|(w(eb)?OSBrowser)|(webOS)|(Kindle\/(1.0|2.0|2.5|3.0))/)) { 
    return false; 
} 
var elem = createElement('input'); 
elem.type = 'file'; 
return !elem.disabled; 
संबंधित मुद्दे

 संबंधित मुद्दे