日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jsp文件通常用common_29.jsp-动态生活之用Commons-FileUpload组件控制文件上传

發布時間:2025/3/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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()方法匹配上傳文件的后綴名,來判斷文件類型是否在允許范圍內。

七。控制文件上傳的大小:

運行代碼,如果提交的文件大小超出了設置要求,那么系統會返回錯誤信息。

在上面的代碼中:創建臨時文件目錄路徑,通過DiskFileItemFactory對象的setSizeThreshold()方法設置緩沖區大小,當上傳文件大小超過緩沖區大小,則臨時存儲在通過DiskFileItemFactory對象的setRepository()

方法設置的臨時文件目錄路徑中。同時通過ServletFileUpload對象的setSizeMax()限制了單個上傳文件的字節數,如果超出設置的字節數,則會拋出一個FileUploadBase.SizeLimitExceededException類型的異常。并通過異常處理提示錯誤信息。

八。通過上面的代碼,我們實現了在文件上傳過程中對于上傳文件類型,大小的設置,只允許向服務器上傳指定類型的文件,使服務器更安全,避免服務器被破壞。控制上傳文件的大小,節約服務器的空間,有效避免服務器的崩潰。

總結

以上是生活随笔為你收集整理的jsp文件通常用common_29.jsp-动态生活之用Commons-FileUpload组件控制文件上传的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。