我要上傳使用JSP和Servlet EJB 3.0如何上傳使用JSP -servlet和EJB 3.0
2
A
回答
6
開始圖像的圖像,使用JSP選擇要上傳的文件,你至少需要一個HTML元素<input type="file">
這將顯示一個文件瀏覽字段。如HTML forms spec中所述,您需要將請求方法設置爲POST
,並且請求編碼爲multipart/form-data
父代<form>
元素。
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit">
</form>
由於上述請求編碼是不是Servlet 3.0之前Servlet API的支持(我不認爲你默認使用的是因爲EJB 3.0的Java EE 5.0的一部分,又包含Servlet 2.5的只有),您在請求參數映射中不會看到任何內容。 request.getParameter("file")
將返回null
。
要檢索上傳的文件和servlet中的其他請求參數,您需要自己解析HttpServletRequest
的InputStream
。幸運的是,有一種常用的API可以從您的手中完成繁瑣的工作:Apache Commons FileUpload。
List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for (FileItem item : items) {
if (!item.isFormField()) {
// <input type="file">
System.out.println("Field name: " + item.getFieldName());
System.out.println("File name: " + item.getName());
System.out.println("File size: " + item.getSize());
System.out.println("File type: " + item.getContentType());
} else {
// <input type="text|submit|hidden|password|button">, <select>, <textarea>, <button>
System.out.println("Field name: " + item.getFieldName());
System.out.println("Field value: " + item.getString());
}
}
基本上你只需要從FileItem
對象獲得InputStream
,並使用通常的Java IO方式,寫入任何OutputStream
您的口味。
InputStream content = item.getInputStream();
另外,您也可以直接寫:
item.write(new File("/uploads/filename.ext"));
在他們的網頁上,你可以找到大量的代碼示例和重要提示&技巧在User Guide和Frequently Asked Questions部分。仔細閱讀。
相關問題
- 1. Servlet 3.0 AsyncContext和EJB @RolesAllowed在JBoss
- 2. 使用jsp和servlet上傳文件
- 3. 如何將WebSEAL安全上下文從JSP/Servlet傳遞到EJB
- 4. 如何使用JSP和Servlet
- 5. 如何使用JSP和Servlet在Java中上傳文件?
- 6. 如何使用JSP和servlet創建文件上傳器?
- 7. 使用Hibernate 3.0與EJB 3.0和JPA
- 8. Emply EJB和Servlet
- 9. 如何進行使用的JSP和servlet
- 10. 如何在Servlet和JSP中使用JUnit?
- 11. 如何使用Uplodify和Servlet/JSP
- 12. EJB 3.0和SQL
- 13. 使用Servlet 3.0和Weblogic 10.3
- 14. 如何使用JSTL,JPA,EJB,JSP,Servlet更新和刪除JavaEE中的記錄
- 15. servlet和JSP的使用
- 16. 創建使用Servlet和JSP
- 17. 使用Servlet和JSP的Hbase
- 18. 如何使用jsp和servlet將多個csv文件上傳到mysql數據庫?
- 19. 如何使用JSP/Servlet和Ajax將文件上傳到服務器?
- 20. EJB 3.0事務傳播
- 21. EJB 2.0 VS EJB 3.0
- 22. Servlet 3.0和資源
- 23. 如何將JSP變量傳遞給servlet?
- 24. 連接JSP和EJB
- 25. 如何使用progerssbar上傳servlet文件
- 26. 我如何測試EJB 3.0?
- 27. 如何上傳圖像使用JSP
- 28. 在Spring MVC上使用Servlet 3.0的MultipartConfig
- 29. 使用servlet 3.0獲取上傳圖像的名稱
- 30. EJB 3.0線程
http://www.google.com/search?hl=zh-CN&q=java+file+upload+tutorial – Asaph 2010-05-13 13:34:26