在我的文件上传servlet中,我有4个输入标签,如下所示
<li>Left File : <input type="file" name="dataFile1" id="fileChooser1" /></li><li><br></li>
<li>Right File : <input type="file" name="dataFile2" id="fileChooser2" /></li><li><br></li>
<li>Config File :<input type="file" name="dataFile3" id="fileChooser3" /></li><li><br></li>
<li>final File : <input type="file" name="dataFile4" id="fileChooser4" /></li><li><br></li>
<li><button type="button" id="execute" onclick="ValidateFile()">Click to Upload files</button></li>
现在,在我的upload.java中,我想确定从哪个文件上传输入文件。
我尝试过使用,
String file1 = request.getParameter("dataFile1").toString();
String file2 = request.getParameter("dataFile2").toString();
String file3 = request.getParameter("dataFile3").toString();
String file4 = request.getParameter("dataFile4").toString();
和
if (file1 != null)
{
//use apache commons and upload file
out.println("left file uploaded");
}
但这不起作用。
如何识别文件上传的输入标签?
答案 0 :(得分:0)
这不是您处理文件上传的方式
也许检查this answer
相关部分是来自apache commons-fileupload的ServletFileUpload和FileItem,反过来FileItem有一个获取field name的方法。
以下是一些示例代码(来自上面链接的答案):
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List items = null;
try {
items = upload.parseRequest(request);
} catch (FileUploadException e) {
e.printStackTrace();
}
Iterator itr = items.iterator();
while (itr.hasNext()) {
FileItem item = (FileItem) itr.next();
if (item.isFormField()) {
} else {
try {
String itemName = item.getName();
String itemField = item.getFieldName();
if (itemField.equals("datafile1")) {
// do things for left side
} else if (itemField.equals("datafile2")) {
// do things for right side
}
} catch (Exception e) {
e.printStackTrace();
}
}
}