2009-05-07 28 views

Trả lời

17

Kiểm tra nó value tài sản:

Trong jQuery (từ thẻ của bạn nhắc đến nó):

$('#fileInput').val() 

Hoặc trong vanilla JavaScript:

document.getElementById('myFileInput').value 
0

Trong Firefox ít nhất, thanh tra DOM là nói cho tôi rằng các yếu tố đầu vào tập tin có một tài sản gọi là files. Bạn sẽ có thể kiểm tra độ dài của nó.

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

Không làm việc trong chrome như vậy có lẽ wont làm việc trong IE hoặc –

+0

Đó là HTML5: http: // stackoverflow .com/questions/7684011/get-the-file-name-from-multiple-file-upload-field – ANeves

0

Tôi nhận này từ một số diễn đàn. Tôi hy vọng nó sẽ hữu ích cho bạn.

<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

Chào mừng bạn đến với SO. Nếu bạn lấy mã từ một nguồn khác, bạn nên phân bổ nó một cách chính xác và/hoặc liên kết với nó vì điều này có thể vi phạm bản quyền và ít nhất là lịch sự để cung cấp tín dụng khi đến hạn. – Scott

13

Chức năng của tôi sẽ kiểm tra xem người dùng đã chọn tệp hay chưa và bạn cũng có thể kiểm tra xem bạn có muốn cho phép tiện ích mở rộng tệp đó hay không.

Hãy thử điều này:

 
<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

Vòng lặp for nên là i KevInSol

1

xây dựng trên giải pháp Ravinders, mã này dừng hình thức được đệ trình. Nó có thể là khôn ngoan để kiểm tra phần mở rộng ở phía máy chủ quá. Vì vậy, bạn không nhận được tin tặc tải lên bất cứ điều gì họ muốn.

<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> 
Các vấn đề liên quan