2012-06-19 100 views
1

我應該在一個循環中像使用文件上傳,文件上傳驗證

<form action="upload.php" method="post" enctype="multipart/form-data" name="form1" id="form1"onsubmit="return(validate());"> 
<?php for($i=0;$i<3;$i++)?> 
<?php {?> 
Select file: 
<input name="ufile[]" type="file" id="file<?=$i;?>" size="50" /> 
<?php }?> 
<input type="hidden" name="ivalue" value="3" id="someVar"/> 
<input type="submit" name="Submit" value="Upload" /> 
</form> 

我已經把一些驗證文件上傳。像,

<script type="text/javascript"> 
function validate() 
{ 
var x=document.getElementById("someVar").value; 
     for(i=0;i<x;i++) 
    { 


    var filename=document.getElementById('file'+i).value; 
    var extension=filename.substr(filename.lastIndexOf('.')+1).toLowerCase(); 
    if(filename) 
    { 
     if(extension=='png' || extension=='gif' || extension=='jpg' ||extension=='jpeg') { 
       return true; 
      } else { 
       alert('Allowed Extensions are "png","gif" and "jpg" !'); 
       return false; 
      } 
     return true; 
    } 
    else 
    { 
     alert('Select upload files!'); 

     return false; 
    } 
    } 

    } 
</script> 

但我的腳本只驗證第一個文件(我知道這是由於id命名約定)。但是我需要驗證,如果用戶沒有選擇任何文件。我可以這樣做嗎?我的意思是,我怎樣才能對for循環中的所有文件進行驗證?

謝謝!

+0

你嘗試生成的ID文件動態?如:id =「file1」,id =「file2」?然後用getElementById(「file」+ i)循環Javascript? – Legoless

+0

我已經把循環編輯在我的代碼..但沒有改變..我錯過了什麼? – NewPHP

+1

您必須使用[HTML5的文件API](http://www.html5rocks.com/en/tutorials/file/dndfiles/)。 –

回答

2
<script type="text/javascript"> 
function validate() 
{ 
    var x=document.getElementById("someVar").value; 
    for(i=0;i<x;i++) { 
     var filename=document.getElementById('file'+i).value; 
     var extension=filename.substr(filename.lastIndexOf('.')+1).toLowerCase(); 
     if (filename) { 
      if (extension=='png' || extension=='gif' || extension=='jpg' ||extension=='jpeg') { 
      } else { 
       alert('Allowed Extensions are "png","gif" and "jpg" !'); 
       return false; 
      } 
     } else { 
      alert('Select upload files!'); 
      return false; 
     } 
    } 
    return true; 
} 
</script> 
1
$(document) 
     .click(
       function() { 

        $("#uploadId") 
          .change(
            function() { 
             var f = this.files[0]; 
             var p = f.size; 
             var fup = document 
               .getElementById('uploadId'); 
             var fileName = fup.value; 
             var ext = fileName 
               .substring(fileName 
                 .lastIndexOf('.') + 1); 
             if (ext == "GIF" || ext == "gif" 
               || ext == "jpg" 
               || ext == "JPG" 
               || ext == "jpeg" 
               || ext == "JPEG" 
               || ext == "bmp" 
               || ext == "BMP" 
               || ext == "png" 
               || ext == "PNG") { 
              if ((p <= 2097152)) { 

               return true; 
              } 

              else { 
               alert("Please upload the image max.size of 2 MB"); 

               $("#uploadId").val(''); 
               $("#uploadId").attr(
                 'enabled', 
                 'enabled'); 

              } 

             } else { 
              alert("Please upload the images only"); 

              $("#uploadId").val(''); 
              $("#uploadId").attr('enabled', 
                'enabled'); 
             } 
            }); 

       }); 
+0

文件大小和文件類型驗證............... himanshu – user1884500