jsp文件通常用common_29.jsp-动态生活之用Commons-FileUpload组件控制文件上传
sizeMax):設置請求信息實體內容的最大允許的字節數
★ public List parseRequest(HttpServletRequest req):
解析form表單中的每個字符的數據,返回一個FileItem對象的集合。
★ public static final boolean
isMultipartConent(HttpServletRequest req):
判斷請求信息中的內容是否是“multipart/form-data”類型
★ public void setHeaderEncoding(String
encoding):設置轉換時所使用的字符集編碼
2. FileItem接口
FileItem是一個接口,用于封裝單個表單字段元素的數據,一個表單字段元素對應一個FileItem對象,在應用程序中使用的是接口的實現類DiskFileItem類。FileItem接口提供的常用方法如下所示:
★ public boolean isFormFileld():
判斷FileItem對象封裝的數據類型。普通表單字段返回true,文件表單字段返回false
★ public String getName():獲得文件上傳字段中的文件名。普通表單字段返回null。
★ public String getFieldName():返回表單字段元素的name屬性值。
★ public void write(File
file):將FileItem對象中保存的主體內容保存到指定的文件中。
★ public String getString :
將FileItem對象中保存的主體內容以一個字符串返回。其重載方法public String getString
(String encoding)中的參數用指定的字符集編碼方式
★ public long getSize():返回單個上傳文件的字節數
3.FileItemFactory接口與實現類
servletFileUpload對象的創建需要依賴于FileItemFactory工廠,將獲得的上傳文件FileItem對象保存至服務器硬盤。FileItemFactory接口的實現是DiskFileItemFactory,該類的常用方法如下:
★ public void setSizeThreshold(int
sizeThreshold):設置內存緩沖區的大小
★ public void setRepositoryPath(String
path):設置臨時文件存放的目錄。
五。在JSP中使用Commons-FileUpload組件實現文件上傳的功能
以( 三) 中的頁面作為文件上傳頁面,將表單提交到doUpload.jsp中
上面的代碼完成了一個文件上傳的功能,現在對上面的代碼進行逐一分析:
1.在JSP文件中使用page指令導入Commons-FileUpload組件所需的類。
2.判斷請求信息中的內容是否是multipart類型,如果是則進行處理。
3.通過FileItemFactory工廠對象實例化ServletFileUpload對象。
4.調用ParseRequest()將表單中字段解析成FileItem對象的集合。
5.通過迭代依次處理每個文件,如果是普通字段,通過getString()方法得到相應編導字符的值,該值與表單字段中的“name”屬性對應。如果是文件字段,則通過File的構造方法構建一個指定路徑名和文件名的文件,并通過FileItem對象的write()方法將上傳文件的內容保存到文件中。
六??刂莆募蟼鞯念愋?/p>
代碼如下:
在上面代碼中,用到了Arrays類,此類包含用于操作數組(如排序和搜索)的各種方法,通過Arrays類的asList()方法創建固定長度的集合,也就是得到允許文件類型的集合,然后通過集合的contains()方法匹配上傳文件的后綴名,來判斷文件類型是否在允許范圍內。
七??刂莆募蟼鞯拇笮?#xff1a;
運行代碼,如果提交的文件大小超出了設置要求,那么系統會返回錯誤信息。
在上面的代碼中:創建臨時文件目錄路徑,通過DiskFileItemFactory對象的setSizeThreshold()方法設置緩沖區大小,當上傳文件大小超過緩沖區大小,則臨時存儲在通過DiskFileItemFactory對象的setRepository()
方法設置的臨時文件目錄路徑中。同時通過ServletFileUpload對象的setSizeMax()限制了單個上傳文件的字節數,如果超出設置的字節數,則會拋出一個FileUploadBase.SizeLimitExceededException類型的異常。并通過異常處理提示錯誤信息。
八。通過上面的代碼,我們實現了在文件上傳過程中對于上傳文件類型,大小的設置,只允許向服務器上傳指定類型的文件,使服務器更安全,避免服務器被破壞??刂粕蟼魑募拇笮?#xff0c;節約服務器的空間,有效避免服務器的崩潰。
總結
以上是生活随笔為你收集整理的jsp文件通常用common_29.jsp-动态生活之用Commons-FileUpload组件控制文件上传的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u852日期限制解决补丁_用友U8hot
- 下一篇: gc方法写法_清标的内容、技巧及书写方式