2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

Java web實現文件上傳?

更新時間:2020-12-18 來源:黑馬程序員 瀏覽量:

1577370495235_學IT就到黑馬程序員.gif

在Web應用中,由于大多數文件的上傳都是通過表單的形式提交給服務器的,因此,要想在程序中實現文件上傳的功能,首先得創建一個用于提交上傳文件的表單頁面。需要注意的是,為了使Servlet程序可以獲取到上傳文件的數據,需要將表單頁面的method屬性設置為post方式,enctype屬性設置為“multipart/form-data”類型,添加文件的input標簽類型設置為file類型。示例如下:

<%--指定表單數據的 enctype 屬性以及提交方式 --%>
<form enctype="multipart/form-data" method="post">
<%-- 指定標記的類型和普通表單的名稱 --%>
用戶名:<input type="text" name="name"/><br/>
<%--指定標記的類型和文件域的名稱--%>
選擇上傳文件:<input type="file" name="myfile"/><br/>

當瀏覽器通過表單提交上傳文件時,由于文件數據都附帶在HTTP請求消息體中,并且采用MIME類型(多用途互聯網郵件擴展類型)進行描述。因此,瀏覽器發送給服務器的HTTP消息比較特殊,具體示例如下:

multipart/form-data;boundary=----------------------------7dfa7a30650
----------------------------7dfa7a30650
Content-Disposition: form-data;name="name"

itcast
----------------------------7dfa7a30650
Content-Disposition: form-data;name="myfile";filename="uploadfile.txt"
Content-Type: text/plain
www.itcast.cn
----------------------------7dfa7a30650--

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

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

1608276731951_fileUpload類源碼.png

圖1 fileUpload類源碼

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

1608276759012_FileUpload組件.png

圖2 FileUpload組件實現文件上傳的工作流程

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


猜你喜歡:

如何測試JSTL是否安裝成功?

Java AQS是什么?如何理解AQS?

Java中integer和int的區別|真題案例講解

Java高級軟件工程師培訓課程

分享到:
在線咨詢 我要報名
和我們在線交談!