我想做一个表单,表单的内容是一张表格,表格里面可以传文件,而且最多传5个文件,初始时只有一个文件上传行,通过一个按钮调用JavaScript来动态生成更多的行,每行中包含一个<input type="text">和一个text文本框来记录该文件下载时显示的超链接内容,这个text文本的内容存入数据库表中,开始的text名称是file1,后面的几个依次是file2,file3等,但是每次我都只能获取到file的文本框的值,不知道为什么。
   JavaScript代码如下:
   <script type="text/javascript">
function addRows()
{

//应该插入的行号
lineIndex = document.getElementById("insert_position").value; //上传文件名的文本框名
numOfFile = document.getElementById("file_index").value;
//文件名索引值递增
++numOfFile; if(numOfFile<=5)
{ //插入文件上传行
var newLine = upload.insertRow(lineIndex);

var newCol1 = newLine.insertCell();
var newCol2 = newLine.insertCell();
var newCol3 = newLine.insertCell();
var newCol4 = newLine.insertCell();

newCol1.innerHTML = "<div align=\"center\"><p><small><font face=\"Verdana\">上传文件:</font>"+
"</small></p></div>";
newCol2.innerHTML = "<input type=\"file\" name=\"file1\" size=\"30\"/>";
newCol3.innerHTML = "<div align=\"center\"><p><small><font face=\"Verdana\">文件名:</font>"+
"</small></p></div>";
newCol4.innerHTML = "<small><font face=\"Verdana\">"+
    "<input type=\"hidden\" size=0 name=\"file_index\" id=\"file_index\" value=\"<%=numOfFile%>\">"+
    "<%if(numOfFile==1){%>"+
    "<input type=text size=14 name=file1>"+
    "<%}else if(numOfFile==2){%>"+
    "<input type=text size=14 name=file2>"+
    "<%}else if(numOfFile==3){%>"+
    "<input type=text size=14 name=file3>"+
    "<%}else if(numOfFile==4){%>"+
    "<input type=text size=14 name=file4>"+
    "<%}else if(numOfFile==5){%>"+
    "<input type=text size=14 name=file5>"+
    "<%}%><br></font></small>"; document.getElementById("insert_position").value = ++lineIndex; document.getElementById("file_index").value = numOfFile; alert(lineIndex+" "+numOfFile);
}
else{
alert("上传文件数量超过不能超过5个");
}
}
</script>
   表单中对应的JSP代码如下:
<form method="post" action="uploadFile.jsp" name="fileUpload" enctype="multipart/form-data">
   <tr>
    <td><div align="center"><p><small><font face="Verdana">上传文件:</font></small></p></div></td>
    <td><input type="file" name="file1" size="30"/></td>
    <td><div align="center"><p><small><font face="Verdana">文件名:</font></small></p></div></td>
    <td width="120"><small><font face="Verdana">
    <input type="hidden" size="0" name="file_index" id="file_index" value="<%=numOfFile%>">
    
    <%if(numOfFile==1){%>
    <input type=text size=14 name="file1">
    <%}else if(numOfFile==2){%>
    <input type=text size=14 name="file2">
    <%}else if(numOfFile==3){%>
    <input type=text size=14 name="file3">
    <%}else if(numOfFile==4){%>
    <input type=text size=14 name="file4">
    <%}else if(numOfFile==5){%>
    <input type=text size=14 name="file5">
    <%}%>
    
    <br></font></small></td>
  </tr>
  uploadFile.jsp文件的部分代码如下:
  <%
//新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
//上传初始化
su.initialize(pageContext);
//设定允许上传的文件类型
su.setAllowedFilesList("txt,doc,docx");
//上传文件
su.upload();
//将上传文件全部保存到指定的目录
int count = su.save("D:/MyEclipse/项目/scu_exchange_project");
%>
<%
   //获取上传新闻的日期
   Date nowTime = new Date();
   SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
   String dateString = formatter.format(nowTime);
   //获取上传的新闻的标题
   String newsTitle = su.getRequest().getParameter("newsTitle");
   //获取上传的新闻ID号
   String newsID = su.getRequest().getParameter("newsId");
   //获取上传的新闻内容
   String newsContent = su.getRequest().getParameter("newsContent");
   //获取上传的文件名
   String uploadFileNames = "";
   for(int i=1;i<=su.getFiles().getCount();i++)
   {
   uploadFileNames +=  su.getRequest().getParameter("file"+i)+" ";
   }
   String[] args = {dateString,newsTitle,newsContent,newsID,uploadFileNames};
   //向数据库中插入新闻信息
   addNews.update("insert into news values('"+dateString+"','"+newsTitle+"','"+newsContent+"','"+newsID+"','"+uploadFileNames+"')");
%>
  最后数据库中的结果老是:file1输入框中内容能够获取到,file2,file3等都是null,  求高手帮忙啊,这问题我纠结了快一天了,好悲剧啊!