0

最初に、私はそのメカニズムを学ぼうとしている jsp/サーブレットの新人であることを述べなければなりません。
イントロ: Apache-Commons-FileUpload 3.0 の使用に関するこのチュートリアルを
読んだので、サーブレットは .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[]たとえば、to /コンテナのリクエストオブジェクト経由のmessage.jsp ?

4

1 に答える 1

1

FileItemメソッドがありgetInputStream()ます。それを呼び出し、返された入力ストリームを使用してファイルを読み取り、List<String>その内容をaに入力し、リストを属性としてリクエストに追加します。

于 2012-12-02T10:47:08.060 に答える