尚硅谷_佟剛_JavaWEB_文件的上傳和下載._第1頁
尚硅谷_佟剛_JavaWEB_文件的上傳和下載._第2頁
尚硅谷_佟剛_JavaWEB_文件的上傳和下載._第3頁
尚硅谷_佟剛_JavaWEB_文件的上傳和下載._第4頁
尚硅谷_佟剛_JavaWEB_文件的上傳和下載._第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基于表單的文件上傳基于表單的文件上傳 如果在表單中使用表單元素 ,瀏覽器在解析表單時(shí),會(huì)自動(dòng)生成一個(gè)輸入框和一個(gè)按鈕,輸入框可供用戶填寫本地文件的文件名和路徑名,按鈕可以讓瀏覽器打開一個(gè)文件選擇框供用戶選擇文件:Enctype Enctype 屬性屬性 當(dāng)表單需要上傳文件時(shí),需指定表單當(dāng)表單需要上傳文件時(shí),需指定表單 enctype enctype 的值為的值為 multipart/form-datamultipart/form-data 在 form 元素的語法中,enctype 屬性指定將數(shù)據(jù)發(fā)送到服務(wù)器時(shí)瀏覽器使用的編碼類型。 enctypeenctype 屬性取值: applicati

2、on/x-www-form-urlencoded:表單 enctype 屬性的默認(rèn)值。這種編碼方案使用有限的字符集,當(dāng)使用了非字母和數(shù)字時(shí),必須用”%HH”代替(H 代表十六進(jìn)制數(shù)字)。對(duì)于大容量的二進(jìn)制數(shù)據(jù)或包含非 ASCII 字符的文本來說,這種編碼不能滿足要求。 multipart/form-data:form 設(shè)定了enctype=“multipart/form-data”屬性后,表示表單以二進(jìn)制傳輸數(shù)據(jù) Commons-fileupload Commons-fileupload 組件組件 Commons-fileupload 組件是 ApacheApache 開源代碼組織用來處理表單

3、文件上傳的一個(gè)子項(xiàng)目,該組件性能優(yōu)異,可以支持任意大小的文件的上傳 Commons-fileupload 組件從 1.1 版本開始依賴 Apache 的另一個(gè)項(xiàng)目:commons-iocommons-ioCommons-fileupload Commons-fileupload 組件上傳的組件上傳的基本原理基本原理 FileUpload組件將頁面提交的所有元素(普通form表單域,如text和文件域file)都看作一樣的FileItem,這樣上傳頁面提交的 request請求也就是一個(gè)FileItem的有序組合,F(xiàn)ileUpload組件可以解析該request,并返回一個(gè)一個(gè)的FileItem

4、。而對(duì)每一個(gè)FileItem,F(xiàn)ileUpload組件可以判斷出它是普通form表單域還是文件file域,從而根據(jù)不同的類型,采取不同的操作如果是表單域,就讀出其值,如果是文件域,就保存文件到服務(wù)器硬盤上或者內(nèi)存中。 Commons-fileupload Commons-fileupload 組件組件APIAPI在 Commons-fileupload 組件中,主要用到以下三個(gè)接口和類:ServletFileUpload 負(fù)責(zé)處理上傳的文件數(shù)據(jù),并將每部分的數(shù)據(jù)封裝成一到 FileItem 對(duì)象中。DiskFileItemFactory 是創(chuàng)建 FileItem 對(duì)象的工廠,在這個(gè)工廠類中可以

5、配置內(nèi)存緩沖區(qū)大小和存放臨時(shí)文件的目錄。ServletFileUpload 在接收上傳文件數(shù)據(jù)時(shí),會(huì)將內(nèi)容保存到內(nèi)存緩存區(qū)中,如果文件內(nèi)容超過了 DiskFileItemFactory 指定的緩沖區(qū)的大小,那么文件將被保存到磁盤上,存儲(chǔ)為 DiskFileItemFactory 指定目錄中的臨時(shí)文件。等文件數(shù)據(jù)都接收完畢后,ServletUpload 在從文件中將數(shù)據(jù)寫入到上傳文件目錄下的文件中文件的下載文件的下載 情景:在一些網(wǎng)絡(luò)系統(tǒng)中,需要隱藏下載文件的真實(shí)地址,或者下載的文件需要一個(gè)程序來動(dòng)態(tài)的確定后在傳送給客戶端 方案:利用程序編碼實(shí)現(xiàn)下載 可以增加安全訪問控制,只對(duì)經(jīng)過授權(quán)認(rèn)證的用戶

6、提供下載 可以從任意位置提供下載的數(shù)據(jù)文件的下載文件的下載利用程序?qū)崿F(xiàn)下載需要設(shè)置 2 個(gè)報(bào)頭: Web Web 服務(wù)器需要告訴瀏覽器其所輸出的內(nèi)容的類型服務(wù)器需要告訴瀏覽器其所輸出的內(nèi)容的類型不是普通的文本文件或 HTML 文件,而是一個(gè)要保存到本地的下載文件而是一個(gè)要保存到本地的下載文件。設(shè)置Content-Type 的值為:application/x-msdownloadapplication/x-msdownload Web Web 服務(wù)器希望服務(wù)器希望瀏覽器不直接處理相應(yīng)的實(shí)體內(nèi)容實(shí)體內(nèi)容,而是由用戶選擇由用戶選擇將相應(yīng)的實(shí)體內(nèi)容保存到一個(gè)文件中將相應(yīng)的實(shí)體內(nèi)容保存到一個(gè)文件中,這需要設(shè)置需要設(shè)置 Content-Content-Disposition Disposition 報(bào)頭報(bào)頭。該報(bào)頭指定了接收程序處理數(shù)據(jù)內(nèi)容的方式,在 HTTP 應(yīng)用中只有只有 attachment attachment 是標(biāo)準(zhǔn)方式是標(biāo)準(zhǔn)方式,attachment 表示要求用戶干預(yù)。在 attachment 后面還可以指定 filename 參數(shù),該參數(shù)是服務(wù)器建議瀏覽器將實(shí)體內(nèi)容保存到文件中的文件名稱瀏覽器將實(shí)體內(nèi)容保存到文件中的文件名稱。在設(shè)置 Content-Dispostion 之前一定要指定 Content-Typ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論