简体   繁体   English

Apache Commons FileUpload getString()方法-Java

[英]Apache Commons FileUpload getString() method - Java

My FileUpload Servlet code: 我的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();
        }
    }
}

Here I'm trying to assign getString() values to a String Array. 在这里,我试图将getString()值分配给String数组。 In above the code , System.out.println which is inside the While Loop prints the values but the System.out.println outside prints NULL . 在上面的代码中, While循环内的System.out.println打印值,而外面的System.out.println打印NULL Any reasons for this and can someone please provide me a solution. 任何原因,有人可以为我提供解决方案。 Thanks for the help. 谢谢您的帮助。

Finally found the answer. 终于找到答案了。 I have done a silly mistake by initializing the i inside the while loop. 我通过在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++;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 java servlet中的Apache Commons文件上传问题 - Apache Commons fileUpload problem in java servlet java.lang.NoClassDefFoundError:java.lang.Class.getDeclaredConstructors0上的org / apache / commons / fileupload / FileItemFactory(本机方法) - java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory at java.lang.Class.getDeclaredConstructors0(Native Method) commons fileupload(Apache) - commons fileupload(Apache) 使用Apache Commons FileUpload - Using Apache commons FileUpload java.lang.ClassNotFoundException:org.apache.commons.fileupload.FileItemFactory - java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory - java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory Java:使用Restlet + Apache Commons FileUpload二进制文件上传 - Java: Binary File Upload using Restlet + Apache Commons FileUpload FileUpload(Apache Commons)和Java POI IOException:无法读取整个标头 - FileUpload (Apache Commons) and Java POI IOException: Unable to read entire header 使用apache commons FileUpload的Java Servlet JSP删除文件 - Java Servlet JSP delete file using apache commons FileUpload Apache commons fileupload“Streaming API” - Apache commons fileupload “Streaming API”
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM