一、什么是文件上傳
? ? 文件上傳:將本地的文件通過流寫入到服務器的過程
二护侮、文件上傳的技術
? ? JSPSmartUpload:應用在JSP上的文件上傳和下載的組件
? ? FileUpload:應用在Java環(huán)境上的文件上傳的功能
? ? Servlet3.0:提供了文件上傳的功能
? ? Struts2:提供了文件上傳的功能
三巧勤、文件上傳的三個要素
? ? 1官辈、表單的提交的方式需要是POST(因為GET有大小限制)
? ? 2蔑鹦、表單中需要有<input type="file">元素偏友,還需要有name屬性和值
3颅夺、表單屬性必須設置enctype="multipart/form-data"
四朋截、文件上傳的原理分析
五、DiskFileItemFactory:磁盤文件項工廠
構造方法:
DiskFileItemFactory()
DiskFileItemFactory(int sizeThreshold, File repository)
sizeThreshold:用來設置文件上傳的緩沖區(qū)的大小吧黄,默認值為10KB
repository:用來設置文件上傳過程中所產生的臨時文件存放的路徑
方法:
setRepository(File repository):設置緩沖區(qū)的大小
setSizeThreshold(int sizeThreshold):設置臨時文件存放的路徑
六部服、ServletFileUpload:核心解析類
構造方法
ServletFileUpload()
ServletFileUpload(FileItemFactory fileItemFactory)
方法
isMultipartContent(HttpServletRequest request)
是用來判斷表單的enctype屬性是否正確
parseRequest(HttpServletRequest request)
解析Request對象,返回一個List集合(每個部分的對象FileItem)
(long fileSizeMax)
用來設置單個文件的大小
setSizeMax(long sizeMax)
用來設置上傳的文件的總大小
七拗慨、ileItem文件項
方法
isFormField()
判斷表單項是普通項還是文件上傳項廓八,如果為true代表是普通項
普通項的方法
getFieldName()
用來獲得普通項的名稱
getString()
用來獲取普通項的值
getString(String encoding)
用來獲取普通項的值(可解決亂碼問題)
文件上傳項
getName()
獲得上傳文件的文件名的方法
getInputStream()
獲得上傳文件的文件內容的方法
getSize()
獲得上傳文件的文件大小
delete()
刪除文件上傳過程中的臨時文件