我要上傳使用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. 使用jsp和servlet上傳文件
- 2. Servlet 3.0 AsyncContext和EJB @RolesAllowed在JBoss
- 3. 如何使用JSP和Servlet
- 4. 如何使用JSP和servlet創建文件上傳器?
- 5. 如何使用JSP和Servlet在Java中上傳文件?
- 6. 使用Hibernate 3.0與EJB 3.0和JPA
- 7. Emply EJB和Servlet
- 8. 如何在Servlet和JSP中使用JUnit?
- 9. 如何使用Uplodify和Servlet/JSP
- 10. 如何進行使用的JSP和servlet
- 11. EJB 3.0和SQL
- 12. 如何使用JSTL,JPA,EJB,JSP,Servlet更新和刪除JavaEE中的記錄
- 13. servlet和JSP的使用
- 14. EJB 2.0 VS EJB 3.0
- 15. Servlet 3.0和資源
- 16. 連接JSP和EJB
- 17. Servlet和jsp
- 18. 在JSP/Servlet中上傳文件
- 19. 管理文件上傳在JSP/Servlet的
- 20. 使用java servlet 3.0文件上傳,如何獲取最大文件大小值
- 21. 如何將jsp中的值傳遞給servlet使用jstl
- 22. 如何在jsp頁面中使用servlet?
- 23. HTTP servlet和jsp 404
- 24. 將EJB 3.0作爲EJB和Websphere 7上的Web服務訪問
- 25. 使用servlets從jsp上傳文件?
- 26. EJB 3.0 TimerService redeploy
- 27. 從jsp傳遞java.util.Map到servlet
- 28. JSP到Servlet參數傳遞
- 29. 使用Servlet和JSP驗證號碼
- 30. JSP Interview,如何將數據從Servlet傳遞給JSP?
http://www.google.com/search?hl=zh-CN&q=java+file+upload+tutorial – Asaph 2010-05-13 13:34:26