簡體   English   中英

Apache Commons FileUpload getString()方法-Java

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

我的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數組。 在上面的代碼中, While循環內的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++;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM