【发布时间】:2013-02-05 09:28:27
【问题描述】:
我正在提交带有文本和文件类型输入字段的表单,并使用此代码获取文本数据
但问题是
List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for (FileItem item : items) {
if (item.isFormField()) {
// Process normal fields here.
//Taking all text and doing task
System.out.println("Field name: " + item.getFieldName());
System.out.println("Field value: " + item.getString());
} else {
// Process <input type="file"> here.
//And Leaving this at this time
}
}
如果我解析请求并逐一迭代,然后在 formField 中获取所有文本参数,之后我再次在文件类型条件中使用此代码上传文件,因此它不会再次解析
List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for (FileItem item : items) {
if (item.isFormField()) {
// Process normal fields here.
//Leaving this section this time
} else {
// Process <input type="file"> here.
//Use to Upload file
System.out.println("Field name: " + item.getFieldName());
System.out.println("Field value (file name): " + item.getName());
}
}
那么为什么会发生...以及应该如何解决这个问题...????
【问题讨论】:
-
你的意思是,你必须for这种循环?
-
@kw4nta 实际上第一次用于获取文本数据并使用相同的代码,但在第二种情况下(其他)用于文件上传,所以在第二次它不上传文件解析没有发生......?? ?
标签: java servlets file-upload apache-commons multipartform-data