表单代码如下
<form name="upload_form" id="upload_form" method="post"
enctype="multipart/form-data" action="PhotoServlet?info=uploadPhoto">
<table width="525" border="0">
<tr>
<td><b>上传相册:</b></td>
<td>${sessionScope.albumname}</td>
</tr>
<tr>
<td><b>当前用户:</b></td>
<td>${sessionScope.username}</td>
</tr>
<tr>
<td><b>上传时间:</b></td>
<td><%=now.format(date)%></td>
</tr>
<tr>
<td><b>图片位置:</b></td>
<td id="more"><input type="file" id="file" name="file"><input
type="button" id="button" name="button" onclick="addMore()"
value="添加..."></td>
</tr>
<tr>
<td></td>
<td><input type="button" id="check1" name="check1" value="上传"
onclick="check()">&nbsp;&nbsp;<input type="reset"
id="reset" name="reset" value="重置">&nbsp;&nbsp;<input
type="button" id="href" name="href" value="返回主页"
onclick="location.href='photoindex.jsp'"></td>
</tr>
</table>
</form><script language="javascript" type="text/javascript">
function addMore() {
var i = document.getElementsByName("file").length;
if (i < 10) {
var td = document.getElementById("more");
var br = document.createElement("br");
var input = document.createElement("input");
var button = document.createElement("input"); input.type = "file";
input.id = "file"; button.type = "button";
button.value = "移除..."; button.onclick = function() {
td.removeChild(br);
td.removeChild(input);
td.removeChild(button);
}; td.appendChild(br);
td.appendChild(input);
td.appendChild(button);
i++;
} else
alert("一次最多上传十张图片!");
}
function check() {
for ( var i = 0; i < document.getElementsByName("file").length; i++) {
if (document.getElementsByName("file")[i].value != "") {
upload_form.submit();
return;
}
}
alert("请选择上传图片!");
}
</script>
每次选择文件上传只会把第一个文件域里的文件上传上去,动态添加的文件域里的文件都没有上传上去,后台代码没有问题,求大神帮忙!

解决方案 »

  1.   

    check方法有问题,你只是把第一个选择的file框里的内容提交到后台了。
    应该类似这样写。function check() {
    var flag = false;
    for ( var i = 0; i < document.getElementsByName("file").length; i++) {
    if (document.getElementsByName("file")[i].value != "") {
    flag = true;
    break;
    }
    }
    if (!flag) {
    alert("请选择上传图片!");
    }
    upload_form.submit();
    }
      

  2.   

    动态添加的name都是file,当然只能得到一个
      

  3.   

    回复于: 2013-06-20 08:51:42 动态添加的name都是file,当然只能得到一个 
      

  4.   

    动态添加的name都是file,当然只能得到一个
      

  5.   

    动态添加的name都是file,只能得到一个  
      

  6.   

    动态添加的name都是file,只能得到一个 
      

  7.   

    用我这个代码可以实现:
    http://blog.csdn.net/huhui_bj/article/details/9010715