2010-07-19 16 views
13

क्या यह निर्धारित करना संभव है कि उपयोगकर्ता ने जावास्क्रिप्ट/jQuery का उपयोग कर किसी विशेष इनपुट प्रकार = "फ़ाइल" फ़ील्ड के लिए फ़ाइल चुनी है या नहीं?jQuery: फ़ाइल अपलोड इनपुट फ़ील्ड के "मान" को कैसे प्राप्त करें

मैंने अभिव्यक्तिइंजिन (PHP- आधारित सीएमएस) के लिए एक कस्टम फील्डटाइप विकसित किया है जो उपयोगकर्ताओं को अमेज़ॅन एस 3 पर अपनी फ़ाइलों को अपलोड और स्टोर करने देता है, लेकिन सबसे लोकप्रिय ईई होस्टिंग सेवा ने अधिकतम_फाइल_अपलोड 20 की सीमा निर्धारित की है। उपयोगकर्ता को 20 फाइलें अपलोड करने, 20 और जोड़ने के लिए एंट्री को फिर से संपादित करने की अनुमति दें। दुर्भाग्यवश प्रविष्टि को संपादित करने पर प्रारंभिक 20 फाइलों में "इस छवि को प्रतिस्थापित करें" फ़ाइल इनपुट फ़ील्ड है जो नई छवियों को अपलोड करने की संभावना को खारिज कर रहा है । जब फॉर्म सबमिट किया जाता है तो मैं जावास्क्रिप्ट के माध्यम से किसी भी अप्रयुक्त फ़ाइल इनपुट फ़ील्ड्स को हटाना चाहता हूं।

उत्तर

20

हां - आप मूल्य पढ़ सकते हैं और यदि आप चाहें तो change ईवेंट से भी बाध्य कर सकते हैं।

<html> 
<head> 
    <title>Test Page</title> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
    <script type="text/javascript"> 
    $(function() 
    { 
    $('#tester').change(function() 
    { 
     console.log($(this).val()); 
    }); 
    }); 
    </script> 
</head> 

<body> 

<input type="file" id="tester" /> 

</body> 
</html> 

लेकिन कुछ अन्य, कई अपलोड समाधान है कि अपनी आवश्यकताओं के अनुरूप बेहतर हो सकता है, इस तरह के bpeterson76 के रूप में तैनात हैं।

+0

इसकी सराहना करते हैं। ऐसा नहीं लगता था कि .val() फ़ाइल इनपुट पर कुछ भी वापस कर देगा, अनुमान लगाओ कि मुझे अभी कोशिश करनी चाहिए :) एकाधिक अपलोड सामग्री उस दिशा के अनुरूप नहीं है जो मैं इस बार जाना चाहता हूं, हालांकि आमतौर पर मैं सहमत हूँ एक बार फिर धन्यवाद। –

+0

फ़ाइल इनपुट फ़ील्ड पूरी तरह से पठनीय हैं - बस लिखने योग्य नहीं। –

0

इस अपलोडर मेरी प्रयोजनों के लिए वास्तव में अच्छी तरह काम किया है: अपने कोडिंग के लिए एक आधार के रूप में उपयोग करने के लिए http://webdeveloperplus.com/jquery/ajax-multiple-file-upload-form-using-jquery/

लाभ यह है कि फ़ाइलों को अतुल्यकालिक रूप अपलोड किया जाता है, तो एक बार में 20 से सीमित करने के लिए कोई जरूरत नहीं है। उपयोगकर्ता खोज कर रहा है, जबकि अपलोड करने के लिए एक निश्चित यूआई लाभ है।

यदि आपको इसकी आवश्यकता है तो आकार बदलना एक बहुत अच्छी सुविधा है!

2

इस कोड के रूप से सभी खाली फ़ाइल आदानों निकाल देंगे और फिर इसे प्रस्तुत:

HTML:

<form action="#"> 
    <input type="file" name="file1" /><br /> 
    <input type="file" name="file2" /><br /> 
    <input type="file" name="file3" /><br /> 
    <input type="file" name="file4" /><br /> 
    <input type="file" name="file5" /><br /> 

    <input type="submit" value="Submit" /> 
</form> 

जावास्क्रिप्ट:

$(function() { 
    $("form").submit(function(){ 
    $("input:file", this).filter(function(){ 
     return ($(this).val().length == 0); 
    }).remove(); 
    }); 
}); 

उदाहरण: http://jsbin.com/axuka3/

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