我想解析相同输入类型和名称的多个表单字段值以及上传的文件,在我的设计中使用 java 脚本生成多个文件上传字段以及允许用户输入文件描述的文本字段,用户可以附加任意数量的字段。
用于创建 html 元素的 java 脚本
var d = document.createElement("div");
var file1 = document.createElement("input");
file1.setAttribute("type", "text");
file1.setAttribute("name", "fileName"+upload_number);
d.appendChild(file1);
var file = document.createElement("input");
file.setAttribute("type", "file");
file.setAttribute("name", "attachment"+upload_number);
d.appendChild(file);
document.getElementById("moreUploads").appendChild(d);
upload_number++;
对应的 HTML
<input type="file" name="attachment" id="attachment" onchange="document.getElementById('moreUploadsLink').style.display = 'block';"/>
<div id="moreUploads"></div>
<div id="moreUploadsLink" style="display:none;">
<a href="javascript:addFileInput();">Attach another File</a>
</div>
检查,我的 java 脚本是如何工作的:http: //jsfiddle.net/8k926/90/
在我的文件上传 servlet 中,尝试调试并且它只解析第一个生成的值,它没有解析由 javascript 生成的下一个生成字段。
我的文件上传 servlet
if(item.isFormField())
{
String name = item.getFieldName();
if(name != null)
{
if(name.equals("fileName"))
{
fileName = item.getString();
}
else if(name.equals("main"))
{
main = item.getString();
}
else if(name.equals("sub"))
{
sub=item.getString();
}
else if(name.equals("filetype"))
{
filetype=item.getString();
}
}
}else{
String file1=item.getFieldName();
String file2=item.getName();
filen=file2;
ocation = File.separator+"home"+File.separator+"adapco"+File.separator+"Desktop"+ File.separator +"output"+ File.separator +main+File.separator+sub+File.separator+filen;
uploadFile = new File(location);
//code for connecting and inserting the form field values into the database.
}
上传单个文件后调试器正在退出。