一般在用Servlet處理表單元素時,表單元素都是一些簡單的文本,Servlet很容易用Request.getParameter()就可以處理。但是當表單不止包含一些簡單的文本,比如有上傳文件域時,Servlet直接從HttpServletRequest對象中解析出複合表單的每一個子部分仍然是一項非常複雜的工作.
爲了簡化對“multipart/form-data”類型數據的處理過程,可以採用相應的組件進行處理,這樣可以節省很大的編碼、支持重用,效率也挺高。
對於Java的組件也有一些:FileUpload、SmartUpload和Cos等等,本文就以Apache的FileUpload講解一下。
要使用FileUpload,首先應下載相應組件:
1.fileupload軟件包:http://commons.apache.org/fileupload/
2.io軟件包:http://commons.apache.org/io/
下載後解壓zip 包,將commons-fileupload-1.2.1.jar和commons-io-1.4.jar 複製到tomcat 的webapp/WEB-INF/lib下。
一、表單頁面(要指定表單的enctype="multipart/form-data")——Upload.html
二、處理表單的Servlet——UploadServlet
該Servlet在Web.xml中其配置爲:
到此已經完成一個簡單的上傳文件功能了——訪問表單頁面,選擇文件後點擊上傳文件即可。如果想要在上傳文件到服務器的同時,又要將文件保存到數據庫中,可以在獲取到文件名後,將文件名保存到數據庫裏,這樣以後可以根據文件名把用戶的文件選擇出來!
附:Java三種上傳組件比較:http://www.javaeye.com/topic/57798
附:Java上傳組件——FileUpload簡介:http://www.javaeedev.com/pdf/file-upload.pdf