Java檔案上傳如何實現呢?

千鋒武漢發表於2021-03-24

Web應用中,由於大多數檔案的上傳都是透過表單的形式提交給伺服器的。因此,要想在程式中實現檔案上傳的功能,首先得建立一個用於提交上傳檔案的表單頁面。需要注意的是,為了使Servlet程式可以獲取到上傳檔案的資料,需要將表單頁面的method屬性設定為post方式,enctype屬性設定為“multipart/form-data”型別,新增檔案的input標籤型別設定為file型別。示例如下:

當瀏覽器透過表單提交上傳檔案時,由於檔案資料都附帶在HTTP請求訊息體中,並且採用MIME型別(多用途網際網路郵件擴充套件型別)進行描述。因此,瀏覽器傳送給伺服器的HTTP訊息比較特殊,具體示例如下:

從上面的表單請求正文可以看出,請求正文分為多個部分,解析這部分內容比較麻煩。為此,Apache組織提供了一個開源元件Commons-FileUpload,該元件可以方便地將“multipart/form-data”型別請求中的各種表單域解析出來,並實現一個或多個檔案的上傳,同時也可以限制上傳檔案的大小等內容,並且效能優異,使用極其簡單。需要注意的是,在使用FileUpload元件時,需要匯入commons-fileupload和commons-io兩個jar包。


為了大家更好地理解FileUpload元件是如何實現檔案的上傳功能,接下來,開啟FileUpload元件的幫助文件,檢視其實現方式,具體如圖6-1所示。

1 fileUpload類原始碼


從圖1中可以看出,FileUpload元件也是透過Servlet來實現檔案上傳功能的。其工作流程如圖2所示。

2 FileUpload元件實現檔案上傳的工作流程


從圖2中可以看出,實現檔案的上傳會涉及到幾個陌生類,這些類都是Apache元件上傳檔案的核心類。關於這些核心類的相關知識,將在下面的小節進行詳細講解。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2764595/,如需轉載,請註明出處,否則將追究法律責任。

相關文章