Apache Commons FileUpload getString()方法-Java
My FileUpload Servlet代码:Apache Commons FileUpload getString()方法-Java,java,servlets,file-upload,apache-commons,Java,Servlets,File Upload,Apache Commons,My FileUpload Servlet代码: public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { boolean isMultipart = ServletFileUpload.isMultipartContent(request); NewsItems ni = new NewsItems();
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
NewsItems ni = new NewsItems();
if (isMultipart) {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List items = upload.parseRequest(request);
Iterator iterator = items.iterator();
String [] myValues = new String[6];
while (iterator.hasNext()) {
FileItem item = (FileItem) iterator.next();
int i = 0;
if (item.isFormField()) {
myValues[i] = item.getString();
System.out.println("my vals: "+myValues[i]); //PRINTS THE VALUES
}
i++;
}
String newsContent = myValues[2]; //PRINTS NULL
System.out.println(newsContent);
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
这里我试图将
getString()
值分配给String
数组。在上面的代码中,System.out.println
位于内部,而循环打印值,但System.out.println
外部打印NULL
。有什么原因吗?有人能给我一个解决方案吗。谢谢你的帮助。终于找到了答案。我犯了一个愚蠢的错误,在while循环中初始化了I
int i = 0;
while (iterator.hasNext()) {
FileItem item = (FileItem) iterator.next();
if (item.isFormField()) {
myValues[i] = item.getString();
System.out.println("my vals: "+myValues[i]); //PRINTS THE VALUES
}
i++;
}
循环迭代的频率是多少?打印整个阵列。也许第三个领域不是你想象的那样。