【JAVAWEB學習筆記】29_文件的上傳------commons-fileupload
今天內容:
文件的上傳------commons-fileupload
文件上傳和下載的實質:文件的拷貝
文件上傳:從本地拷貝到服務器磁盤上 客戶端需要編寫文件上傳表單---->服務端需要編寫代碼接受上傳的 文件
文件下載:從服務器磁盤上拷貝到本地磁盤 需要編寫服務端的代碼,客戶端的下載的工作瀏覽器內核解決的
一、文件上傳
1、文件上傳的步驟:
(1) 需要寫一個文件上傳表單
(2) 編寫服務器端的代碼用於接收上傳的文件
2、客戶端的編碼
註意事項:
3、服務端接受文件上傳的表單數據
文件上傳接收原理
使用方便快捷的文件上傳的工具---Apache Commons-fileupload.jar
使用步驟:
(1) 下載文件上傳的jar包 fileuplaod 借助於 commons-io.jar
(2) 使用fileupload工具中的API進行編碼
4、FileUpload工具中三個核心的對象
DiskFileItemFactory:磁盤文件項工廠--一些相關的配置的設置 緩存的大小 臨時目錄的位置
ServletFileUplaod:文件上傳的一個核心類
FileItem:代表每一個表單項
5、快速入門
6、文件上傳的API的詳解
(1) DiskFileItemFactory
設置緩存大小:factory.setSizeThreshold() 單位是字節
設置臨時文件的目錄:factory.setRepository(File)
(2) ServletFileUpload
判斷是否是一個文件上傳的表單:ServletFileUpload.isMultipartContent(request);
解析request獲得表單項的集合:upload.parseRequest(request);
設置上傳的文件名的編碼方式:upload.setHeaderEncoding("UTF-8");
(3) FileItem
判斷是否是普通表單項:item.isFormField();
獲得表單的name屬性值:item.getFieldName();
獲得表單的value值:item.getString("UTF-8") --- UTF-8表示獲得中文時的編碼
獲得上傳文件的名稱:item.getName()
獲得上傳文件:item.getInputStream();
刪除臨時文件:item.delete();
【JAVAWEB學習筆記】29_文件的上傳------commons-fileupload