2011-05-05 16 views
39

मेरे पास <input type="file" id="uploadPicture" value="123">इनपुट प्रकार = "फ़ाइल" का मूल्य नहीं मिल सकता है?

है जब मैं उपयोग कर रहा हूं: alert($("#uploadPicture").val());

यह एक खाली संवाद अलर्ट करता है।

+0

जब आप उस चेतावनी को बुला रहे हैं? –

+2

इसे जांचें: http://stackoverflow.com/questions/4459379/preview-an-image-before-it-is-uploaded और http://jsfiddle.net/LvsYc/638/ आपकी मदद कर सकता है: D – Jaider

उत्तर

34

आप इसे पढ़ सकते हैं, लेकिन आप सेट नहीं कर सकते हैं। value="123" को अनदेखा कर दिया जाएगा, इसलिए जब तक आप उस पर क्लिक न करें और फ़ाइल चुनें, तब तक इसका कोई मूल्य नहीं होगा।

तब भी, उपयोगकर्ता की फाइल सिस्टम निजी के विवरण रखने के लिए मूल्य c:\fakepath\ जैसे कुछ के साथ उलझाया जाएगा।

+2

दाएं - - ब्राउज़र इसका अलग-अलग व्यवहार करते हैं, उदाहरण के लिए फ़ायरफ़ॉक्स केवल फ़ाइल नाम चुनने के बाद फ़ाइल नाम दिखाएगा, जबकि कुछ पूर्ण पथ दिखा सकते हैं। इस क्लाइंट साइड के साथ आप वास्तव में कुछ भी नहीं कर सकते हैं .. आप ओपी को पूरा करने की क्या कोशिश कर रहे हैं? – Atticus

4
$('input[type=file]').val() 

इससे आपको फ़ाइल चयनित होगी।

हालांकि, आप अपना मान निर्धारित नहीं कर सकते हैं।

3

आप मार्कअप में file इनपुट के value सेट नहीं कर सकते हैं, जैसे आपने value="123" के साथ किया था।

यह उदाहरण कि यह वास्तव में काम करता है पता चलता है: http://jsfiddle.net/marcosfromero/7bUba/

6

आप (document.getElementById का उपयोग करके इसे प्राप्त कर सकते हैं);

var fileVal=document.getElementById("some Id"); 
alert(fileVal.value); 

फ़ाइल का मूल्य दे देंगे, लेकिन जैसा कि इस प्रकार

c:\fakepath\filename 
+0

मुझे पूरा पथ मिल गया ... और अकेले फ़ाइल नाम प्राप्त करने के लिए पथ से रेगेक्स का उपयोग किया गया .. – ashwinsakthi

-2

निकालें मूल्य = "123" बात बहुत अच्छी लग रही होगी यह fakepath साथ देता है। फिर कोशिश करें:

$("file_selector").val(); 

अभी भी एक मुद्दा है। आपको एक सी: \ fakepath \ yourfile.extension मिलेगा।

+0

हाय और स्टैक ओवरफ्लो में आपका स्वागत है। क्या आप इस जवाब को थोड़ा और विस्तारित करना चाहते हैं? – slm

+0

मैंने $ ("file_selector") जैसे मान प्राप्त करने के लिए ऊपर की कोशिश की। Val(); लेकिन मुझे c: \ fakepath \ yourfile.extension मिल रहा है। फिर मैं jquery का उपयोग कर मूल्य पढ़ने में सक्षम हो जाएगा का उपयोग कर। –

1

यह पुराने सवाल है लेकिन सिर्फ मामले में किसी को यह चलने पर टक्कर ...

var input = document.getElementById("your_input"); 
var file = input.value.split("\\"); 
var fileName = file[file.length-1]; 

regex के लिए कोई ज़रूरत नहीं, jQuery ....

43

@BozidarS: FileAPI आजकल काफी अच्छी तरह से समर्थित है और कई उपयोगी विकल्प प्रदान करता है।

var file = document.forms['formName']['inputName'].files[0]; 
//file.name == "photo.png" 
//file.type == "image/png" 
//file.size == 300821 
संबंधित मुद्दे