0

首先,我必须声明我是 jsp/servlet 新手,试图学习它的机制。
简介:
由于我阅读了有关使用Apache-Commons-FileUpload 3.0 的教程,Servlet 成功上传 .txt 文件,并且该文件存储在 Tomcat 的wtpwebapps/MyProject/upload文件夹中。 这是 UploadServlet 的 doPost 方法的重要部分,它与参考教程中的相同:

try {
        // parses the request's content to extract file data
        List formItems = upload.parseRequest(request);
        Iterator iter = formItems.iterator();

        // iterates over form's fields
        while (iter.hasNext()) {
            FileItem item = (FileItem) iter.next();
            // processes only fields that are not form fields
            if (!item.isFormField()) {
                String fileName = new File(item.getName()).getName();
                String filePath = uploadPath + File.separator + fileName;
                File storeFile = new File(filePath);                     
                // saves the file on disk
                item.write(storeFile);
            }
        }
        request.setAttribute("message", "Upload has been done successfully!");
    } catch (Exception ex) {
        request.setAttribute("message", "There was an error: " + ex.getMessage());
    }
    getServletContext().getRequestDispatcher("/message.jsp").forward(request, response);
}

}

在代码段的末尾,程序员指定将在/messages.jsp文件 中打印的消息文本。

问题:
在设置请求属性之前,我如何将上传的文件作为流获取,逐行处理(使用BufferedReader或类似方法),关闭流并将其发送为... String[]例如,到/ message.jsp通过容器的请求对象?

4

1 回答 1

1

FileItemgetInputStream()方法。调用它,使用返回的输入流读取文件,List<String>用其内容填充 a,并将列表作为属性添加到请求中。

于 2012-12-02T10:47:08.060 回答