2012-12-02 102 views
0

首先,我必須說明我是jsp/servlet新手,試圖瞭解它的機制。
簡介:
由於我使用 Apache的共享,文件上傳3.0,Servlet的上傳.txt文件成功讀取this教程,以及文件被存儲在Tomcat的 wtpwebapps/MyProject的/上傳文件夾。
這裏是UploadServlet的doPost方法的重要組成部分,它只是一樣中引用教程:在Servlet中處理上傳的文件內容並在jsp中打印內容

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或類似)用它做什麼,關閉流,並把它作爲。 .. 字符串[]例如,到 /message.jsp通過容器的請求對象?

回答

1

FileItem有一個getInputStream()方法。調用它,使用返回的輸入流讀取文件,填充List<String>及其內容,並將該列表作爲屬性添加到請求中。

+0

Mersi,爲您的時間和這個簡單的答案,我現在litle imbaresed,salut! :) – l0lander

+0

嘿傢伙,你能給我多一點細節,我可以如何使用getInputStream()方法讀取一個txt文件並在上傳文件後處理數據?我堅持這個過程。 :( – user2480902