我應該在一個循環中像使用文件上傳,文件上傳驗證
<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循環中的所有文件進行驗證?
謝謝!
你嘗試生成的ID文件動態?如:id =「file1」,id =「file2」?然後用getElementById(「file」+ i)循環Javascript? – Legoless
我已經把循環編輯在我的代碼..但沒有改變..我錯過了什麼? – NewPHP
您必須使用[HTML5的文件API](http://www.html5rocks.com/en/tutorials/file/dndfiles/)。 –