2009-05-07 9 views
11

का उपयोग कर मैं कैसे मान्य कर सकते हैं उपयोगकर्ता अपलोड के लिए फ़ाइल का चयन किया है, तो एक फाइल अपलोड क्षेत्र मान्य करने के लिए?कैसे जावास्क्रिप्ट/jQuery

संपादित करें: कम से कम

+0

http://www.angulartutorial.net/2016/05/file-upload-validation.html – Prashobh

उत्तर

17

की जाँच करें यह value संपत्ति है:

jQuery में (जो आपके टैग यह उल्लेख के बाद से):

$('#fileInput').val() 

या वेनिला जावास्क्रिप्ट में:

document.getElementById('myFileInput').value 
0

टकरा Firefox में, डोम निरीक्षक मुझे बता रहा है कि फ़ाइल इनपुट तत्वों एक संपत्ति files कहा जाता है। आप इसकी लंबाई की जांच करने में सक्षम होना चाहिए।

document.getElementById('myFileInput').files.length 
+0

क्रोम में काम नहीं करता तो शायद IE में अभ्यस्त काम या तो –

+0

यह एचटीएमएल 5 है: http: // stackoverflow .com/प्रश्न/7684011/प्राप्त-फ़ाइल-नाम-से-एकाधिक-फ़ाइल-अपलोड-फ़ील्ड – ANeves

0

मैं कुछ से मिला मंच। मुझे आशा है कि यह आपके लिए उपयोगी होगा। उपयोगकर्ता फ़ाइल का चयन किया है या नहीं, अगर

<script type="text/javascript"> 
function validateFileExtension(fld) { 
    if(!/(\.bmp|\.gif|\.jpg|\.jpeg)$/i.test(fld.value)) { 
     alert("Invalid image file type.");  
     fld.form.reset(); 
     fld.focus();   
     return false; 
    } 
    return true; 
} </script> </head> 
<body> <form ...etc... onsubmit="return 
validateFileExtension(this.fileField)"> <p> <input type="file" 
name="fileField" onchange="return validateFileExtension(this)"> 
<input type="submit" value="Submit"> </p> </form> </body> 
+5

SO में आपका स्वागत है। यदि आपको किसी अन्य स्रोत से कोड प्राप्त होता है तो आपको इसे उचित रूप से श्रेय देना चाहिए, और/या उससे लिंक करना चाहिए क्योंकि यह कॉपीराइट का उल्लंघन हो सकता है, और यह कम से कम सौजन्य है जहां वह देय है। – Scott

13

मेरे समारोह की जाँच करेगा और आप भी जाँच कर सकते हैं आपको लगता है कि फाइल एक्सटेंशन या नहीं की अनुमति देना चाहते हैं या नहीं।

इस प्रयास करें:

 
<input type="file" name="fileUpload" onchange="validate_fileupload(this.value);"> 

function validate_fileupload(fileName) 
{ 
    var allowed_extensions = new Array("jpg","png","gif"); 
    var file_extension = fileName.split('.').pop().toLowerCase(); // split function will split the filename by dot(.), and pop function will pop the last element from the array which will give you the extension as well. If there will be no extension then it will return the filename. 

    for(var i = 0; i <= allowed_extensions.length; i++) 
    { 
     if(allowed_extensions[i]==file_extension) 
     { 
      return true; // valid file extension 
     } 
    } 

    return false; 
} 
+1

लूप के लिए मैं KevInSol

1

बिल्डिंग Ravinders समाधान पर, इस कोड को बंद हो जाता है प्रपत्र सबमिट किया जाने वाला। सर्वर-साइड पर विस्तार की जांच करना बुद्धिमान हो सकता है। तो आप हैकर्स को जो भी चाहते हैं उसे अपलोड नहीं करते हैं।

<script> 
var valid = false; 

function validate_fileupload(input_element) 
{ 
    var el = document.getElementById("feedback"); 
    var fileName = input_element.value; 
    var allowed_extensions = new Array("jpg","png","gif"); 
    var file_extension = fileName.split('.').pop(); 
    for(var i = 0; i < allowed_extensions.length; i++) 
    { 
     if(allowed_extensions[i]==file_extension) 
     { 
      valid = true; // valid file extension 
      el.innerHTML = ""; 
      return; 
     } 
    } 
    el.innerHTML="Invalid file"; 
    valid = false; 
} 

function valid_form() 
{ 
    return valid; 
} 
</script> 

<div id="feedback" style="color: red;"></div> 
<form method="post" action="/image" enctype="multipart/form-data"> 
    <input type="file" name="fileName" accept=".jpg,.png,.bmp" onchange="validate_fileupload(this);"/> 
    <input id="uploadsubmit" type="submit" value="UPLOAD IMAGE" onclick="return valid_form();"/> 
</form>