2011-09-27 16 views
41

पर फ़ाइल अपलोड चयन को प्रतिबंधित करें <input type="file" /> तत्व के माध्यम से फ़ाइल प्रकारों के चयन को प्रतिबंधित करने के लिए वैसे भी?विशिष्ट प्रकार

उदाहरण के लिए, अगर मैं केवल छवि प्रकारों को अपलोड करना चाहता था, तो मैं संभावित चयनों को (छवि/jpg, image/gif, image/png) तक सीमित कर दूंगा, और चयन संवाद अन्य माइम प्रकारों की फ़ाइलों को भूरेगा ।

पेज। मुझे पता है कि मैं .type विशेषताओं को स्कैन करके फ़ाइल एपीआई के साथ इस तथ्य के बाद ऐसा कर सकता हूं। मैं वास्तव में हाथ से पहले इसे प्रतिबंधित करने की कोशिश कर रहा हूं .. मुझे यह भी पता है कि मैं फ्लैश के माध्यम से ऐसा कर सकता हूं, लेकिन मैं इसके लिए फ्लैश का उपयोग नहीं करना चाहता हूं।

उत्तर

56

accept नामक इस विशिष्ट उद्देश्य के लिए एक HTML विशेषता है लेकिन इसका ब्राउज़र में थोड़ा सा समर्थन नहीं है। इसके बजाय इस सर्वर पक्ष सत्यापन की सिफारिश की जाती है।

<input type="file" name="pic" id="pic" accept="image/gif, image/jpeg" /> 

आप बैकएंड के लिए उपयोग नहीं है, तो SWFUpload की तरह एक फ्लैश आधारित समाधान पर एक नजर है।

इस यहाँ पर अधिक देखें: File input 'accept' attribute - is it useful?

+2

w3schools के अनुसार 'स्वीकृति विशेषता इंटरनेट एक्सप्लोरर 10, फ़ायरफ़ॉक्स, ओपेरा, क्रोम और सफारी 6 में समर्थित है।' फ़ायरफ़ॉक्स, ओपेरा या क्रोम का कोई संस्करण संख्या निर्दिष्ट नहीं थी। –

8

यह उपयोगकर्ता किसी भी फ़ाइल का चयन करें, और उसके बाद अपने प्रकार की जाँच जाने के लिए बेहतर है - यह बेहतर ब्राउज़र द्वारा समर्थित है:

var 
    file = (el[0].files ? el[0].files[0] : el[0].value || undefined), 
    supportedFormats = ['image/jpg','image/gif','image/png']; 

if (file && file.type) { 
    if (0 > supportedFormats.indexOf(file.type)) { 
     alert('unsupported format'); 
    } 
    else { 
     upload(); 
    } 
} 

तुम भी जाँच कर सकते हैं file.size संपत्ति का उपयोग कर फ़ाइल आकार के लिए।

+0

सवाल यह था कि यह कैसे करें, अगर आपको लगता है कि आगे बढ़ने का यह अच्छा तरीका नहीं है। – Moonchild

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