2012-12-06 5 views
17

मेरे पास एक फ़ाइल अपलोड इनपुट के साथ एक साधारण HTML फ़ॉर्म है। (jsfiddle)Jquery input.files समकक्ष

अतीत में, मैं input.files का उपयोग कर उपयोगकर्ता द्वारा चयनित फ़ाइल को एक्सेस किया है, फिर भी मैं कैसे JQuery के साथ ऐसा करने के लिए के रूप में एक नुकसान में हूँ,

कोड:

$(function() { 
    $("#cmdSubmit").bind("click", function() { 
     var file = document.getElementById("fileInput").files[0]; 
     alert(file); //A 

     file = $("#fileInput").val(); 
     alert(file); //B 

     file = $("#fileInput").files[0]; 
     alert(file); //C 

    });   
});​ 

विकल्प एक मुझे दे मैं क्या उम्मीद, एक फ़ाइल वस्तु। हालांकि, विकल्प बी बस मुझे अपलोड की गई फ़ाइल का नाम देता है, और (जहाँ तक मैं बता सकता हूँ) फ़ाइल ही नहीं।

विकल्प सी दिखाता है कि files अपरिभाषित है।

Jquery input.files के बराबर क्या है?

नोट: मुझे मूल जावास्क्रिप्ट का उपयोग करने पर कोई आपत्ति नहीं है; लेकिन यह देखते हुए कि मैं इस परियोजना के बाकी हिस्सों में JQuery का उपयोग कर रहा हूं, मैं इसे यहां भी उपयोग करना पसंद करूंगा।

उत्तर

33

आपको तत्व का उपयोग करना होगा। प्रयास करें:

file = $("#fileInput")[0].files[0]; 
alert(file); //C 

या (यदि आप जैक धन्यवाद)

file = $("#fileInput").prop('files')[0]; 
alert(file); 

Fiddle

+0

लवली - धन्यवाद! – Mansfield

+3

'.prop ('files') [0]' 'attr ('file') ' –

0
$(function() { 
    $("#cmdSubmit").bind("click", function() { 
     alert(this.files); 
    });   
});​ 
1

jQuery फ़ाइलें API के लिए एक आवरण प्रदान नहीं करता है। तो ऐसा करने के लिए एक jQuery शैली तरीका नहीं है, कम से कम jQuery कोर में नहीं बनाया गया है।

आपके विकल्प: विकल्प के साथ

  • छड़ी jQuery के लिए एक
  • इंतजार इस तरह के एक आवरण शामिल करने के लिए (वे नहीं हो सकता है)
  • एक विस्तार किसी और (एक मौजूद हैं)
  • किसी के द्वारा लिखा लगता है
  • एक विस्तार अपने आप को
1

बारे में नीचे दिए गए कोड का प्रयास करें

var file = $("#fileInput").get(0).files[0]; 
alert(file); 

धन्यवाद

+0

से काम करने की अधिक संभावना है यह इस प्रकार सही दिखता है: https://learn.jquery.com/using-jquery-core/faq/how-do-i-pull-a-native-dom-element-from-a-jquery-object/ अक्सर पूछे जाने वाले प्रश्न यह है कि यह धीमा है ... डाउनवोट क्यों? – Andz

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