1. 文件上傳理解
Ø 項目中經常使用文件上傳這一功能,比如說要求用戶註冊時上傳自己的照片,論壇發貼時可以上傳附件,發送郵件時可以上傳簡歷。。。。。都要用到文件上傳這一功能
Ø 上傳的文件可以是任何類型,圖片,文本文件,html文件
Ø 文件上傳是指將文件從客戶端(用戶機器上)上傳到服務器端(如localhost)
2. 文件上傳步驟
說明:java裏的文件上傳已被apache國際開源組織封裝好,其項目名爲FileUpload。所以我們沒有必要再“發明歷史的輪子”,直接使用就可以達到上傳文件的目的。
Ø 下載commons-fileupload-1.2.2.jar包,打開commons-fileupload幫助文檔,在userguid下可以看到“FileUpload depends on Commons IO”,所以還要下載commons-io-2.3.jar
Ø 將以上兩個jar包導入到工程當中
Ø 創建一個帶有文件上傳的JSP頁面,即有類型的控件
確認表單提交方式爲post,並添加enctype="multipart/form-data"
3.Servlet中處理的具體步驟:
- 具體步驟:
- 1)獲得磁盤文件條目工廠 DiskFileItemFactory 要導包
- 2) 利用 request 獲取 真實路徑 ,供臨時文件存儲,和 最終文件存儲 ,這兩個存儲位置可不同,也可相同
- 3)對 DiskFileItemFactory 對象設置一些 屬性
- 4)高水平的API文件上傳處理
- ServletFileUpload upload = new ServletFileUpload(factory);
- 目的是調用 parseRequest(request)方法 獲得 FileItem 集合list ,
-
- 5)在 FileItem 對象中 獲取信息, 遍歷, 判斷 表單提交過來的信息 是否是 普通文本信息 另做處理
- 6)
- 第一種. 用第三方 提供的 item.write( new File(path,filename) ); 直接寫到磁盤上
- 第二種. 手動處理
提供一個鏈接:http://blog.csdn.net/hzc543806053/article/details/7524491
Servlet實現文件上傳,可多文件上傳,博主講的很清楚,大家可以參考!