2012-05-22 12 views
27

मेरे पास <input type="file" id="basicUploadFile" multiple="multiple"> है और मैं इस इनपुट के अंदर सभी फ़ाइल नाम प्राप्त करना चाहता हूं। मैंने कुछ उदाहरण देखा है, लेकिन इसे केवल पहली फ़ाइल का नाम मिलता है।JQuery - सभी फ़ाइल नाम इनपुट = 'फ़ाइल'

$ ('#basicUploadFile').live ('change', function() { 
    alert($ ('#basicUploadFile').val()); 
}); 

मैं यह कैसे कर सकता हूं? धन्यवाद।

+2

http://stackoverflow.com/questions/6171013/javascript-get-number- यहाँ एक टुकड़ा है ऑफ-फाइल-एंड-उनके-फाइलनाम-से-इनपुट-एकाधिक-elemen –

+2

इस प्रश्न का सटीक डुप्लिकेट: http://stackoverflow.com/questions/3654179/retrieving-file-names-out-of-a-multi- फ़ाइल-अपलोड-कंट्रोल-जावास्क्रिप्ट – Tr1stan

उत्तर

63
var files = $('#basicUploadFile').prop("files") 

files एक FileList वस्तु हो जाएगा।

var names = $.map(files, function(val) { return val.name; }); 

अब names तार की एक सरणी (फ़ाइल नाम)

FileAPI reference
files property reference

+3

'.prop()' और '$ .map()' विधियों का अच्छा प्रदर्शन जो मुझे पता नहीं था। :) – Richard

+1

यह आईई में काम नहीं करता है। – Oddman

+2

हां, एकाधिक विशेषता के लिए समर्थन केवल आईई 10 में दिखाई दिया। – wrock

9

jsFiddle Demo


तुम अब भी बिना एक FileList संग्रह के रूप में फाइल का उपयोग कर सकते हैका उपयोग करने की आवश्यकता है। मैंने एक त्वरित jsFiddle बनाया है जो FileList और File ऑब्जेक्ट्स का उपयोग करके इनपुट से जानकारी प्राप्त करने का तरीका दिखाता है।

$('#basicUploadFile').live('change', function() 
{ 
    for (var i = 0; i < this.files.length; i++) 
    { 
     alert(this.files[i].name); 
     alert(this.files.item(i).name); // alternatively 
    } 
}); 
+0

क्या आप कृपया थोड़ा सा समझा सकते हैं "$ (यह)" – atif

+1

'$ (यह) 'के बजाय" इस "का उपयोग क्यों हमें ऑब्जेक्ट' इस 'के लिए एक jQuery wrapper प्रदान करेगा, जो कुछ मामलों में उपयोगी होगा क्योंकि यह कुछ तरीकों का पर्दाफाश करेगा, हालांकि इस मामले में यह अनावश्यक है। – Richard

+0

यह आईई में काम नहीं करता है - आईई आपको फ़ाइलों की सूची तक पहुंचने की अनुमति नहीं देता है। – Oddman

0
<input name="selectAttachment" id="selectAttachment" type="file" multiple="multiple"> 
<button class="btn btn-default" onclick="uploadAttachment()" type="submit">Upload</button> 


function uploadAttachment() { 
       debugger; 
       var files = $('#selectAttachment').prop('files'); 
       var names = $.map(files, function (val) { return val.name; }); 
      } 
1

मैं इस प्रयोग किया जाता कंसोल में दिखाने के लिए सभी फ़ाइलों का नाम::

var input_file = $("#input_file"); 
input_file.on("change", function() { 
    var files = input_file.prop("files") 
    var names = $.map(files, function (val) { return val.name; }); 
    $.each(names, function (i, name) { 
      console.log(name); 
    }); 
}); 
संबंधित मुद्दे