Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache Commons FileUpload getString()方法-Java_Java_Servlets_File Upload_Apache Commons - Fatal编程技术网

Apache Commons FileUpload getString()方法-Java

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();

My FileUpload Servlet代码:

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++;
}

循环迭代的频率是多少?打印整个阵列。也许第三个领域不是你想象的那样。