2011-08-11 16 views
42

संभव डुप्लिकेट एकाधिक फ़ाइलों है:
Retrieving file names out of a multi-file upload control with javascriptइनपुट प्रकार = "फाइल" जाओ मूल्य जब यह चयनित

एचटीएमएल 5 इनपुट प्रकार से = "फाइल" की अनुमति देता है उपयोगकर्ताओं द्वारा एक से अधिक फ़ाइलों का चयन करने के एकाधिक = "एकाधिक" जोड़ना:

<input type="file" multiple="multiple" /> 

मेरा प्रश्न है: मैं उस इनपुट का मूल्य कैसे प्राप्त कर सकता हूं? .value का उपयोग करते समय यह केवल पहली फ़ाइल का फ़ाइल नाम लौटाता है, लेकिन एक से अधिक चुनते समय मैं अन्य को देखने में सक्षम नहीं हूं।

मैं क्या है:

<input type="file" multiple="multiple" onchange="alert(this.value)" 
    onmouseout="alert(this.value) /> 

जो जैसा कि मैंने तुमसे कहा था, केवल चयनित फ़ाइलों में से एक का नाम दिखा रहा है।

नोट: मैं मान को संपादित नहीं करना चाहते (मैं जानता हूँ कि यह संभव नहीं है) फ़ाइलों का केवल नाम

धन्यवाद!

उत्तर

77

चयनित फ़ाइलों एक सरणी में जमा हो जाती: [input].files

उदाहरण के लिए, आप

// assuming there is a file input with the ID `my-input`... 
var files = document.getElementById("my-input").files; 

for (var i = 0; i < files.length; i++) 
{ 
alert(files[i].name); 
} 

jQuery-आराम से लोगों के लिए आइटम एक्सेस कर सकते, यह इसी तरह आसान है

// assuming there is a file input with the ID `my-input`... 
var files = $("#my-input")[0].files; 

for (var i = 0; i < files.length; i++) 
{ 
alert(files[i].name); 
} 
+2

फ़ाइलें फ़ाइल इनपुट की संपत्ति यानी पर अपरिभाषित है, हालांकि काम करता है अन्य ब्राउज़रों पर ठीक। क्या आप इस बारे में जाने के लिए किसी भी तरह से जानते हैं? –

+3

'फ़ाइलें [i]' IE9 में अपरिभाषित है। क्या आप IE9 में यह काम कैसे प्राप्त करें इस पर समाधान दे सकते हैं? – OO7

+2

@ ओओ 7 आईई 9 एकाधिक इनपुट फ़ाइल का समर्थन नहीं करता है। यह केवल आईई 10 + है। – barell

8

आप use input.files property। यह File objects का एक संग्रह है और प्रत्येक फ़ाइल एक name संपत्ति है:

onmouseout="for (var i = 0; i < this.files.length; i++) alert(this.files[i].name);" 
+0

धन्यवाद, यह पूरी तरह से स्वतंत्रता के उत्तर (नाम या फ़ाइल दोनों नामों के नाम के समान काम करता है) लेकिन उन्होंने पहले जवाब दिया और मैं दो उत्तरों को स्वीकृत के रूप में सेट नहीं कर सकता, फिर भी आपके उत्तर में +1 – spuas

+0

असल में, उन्होंने बिना किसी उचित कोड उदाहरण के उत्तर दिया और संपादित किया मेरा पोस्ट भेजने के बाद उसकी पोस्ट। लेकिन - वास्तव में कोई फर्क नहीं पड़ता। :) –

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