《文件操作實例》PPT課件_第1頁
《文件操作實例》PPT課件_第2頁
《文件操作實例》PPT課件_第3頁
《文件操作實例》PPT課件_第4頁
《文件操作實例》PPT課件_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第13章 文件操作實例,在本章中主要講解在Web應(yīng)用程序中的文件上傳技術(shù),在Web應(yīng)用程序中可以通過一個apche組織開發(fā)的用于上傳的組件Common-FileUpload來實現(xiàn)文件上傳,使用這個組件可以很容易的實現(xiàn)文件的上傳功能。 在Struts中已經(jīng)對這個組件進(jìn)行了封裝,并且使用上傳文件的過程更加透明化,此外,Struts封裝了另一個實現(xiàn)上傳文件的項目,名叫COS,該項目在Struts 2中實現(xiàn)文件上傳非常簡單,只需要在Action中添加幾個屬性就可以了。,13.1 Struts 2文件上傳,在Struts 2中并沒有提供有自己的上傳文件的組件,但是Struts 2可以使用其他的上傳文件的

2、組件,例如前面提到的Commons-FileUpload、COS等,Struts 2只是為這些上傳文件的組件做了統(tǒng)一的接口,而且開發(fā)人員在使用Struts 2時可以不用了解這些上傳組件的具體細(xì)節(jié)就可以完成文件上傳。,13.1.1 Struts 2對上傳文件的支持,目前的Struts 2支持有三種文件上傳的組件,分別是Commons-FileUpload、cos和pell,并且這三種文件上傳組件都可以配置到Struts的配置文件perties文件中。 如果使用Commons-FileUpload來上傳文件的話,必須要引入commons-io-1.4.jar文件和commons

3、-fileupload-1.2.1.jar文件,于此相同,如果使用COS或者pell的話,也需要引入相關(guān)的jar文件,才能夠正常的進(jìn)行文件的上傳。,13.1.2 上傳文件的JSP頁,本節(jié)所給出的JSP文件上傳頁面采用了Struts 2標(biāo)簽來實現(xiàn),文件名為uploadstruts.jsp 其中UploadAction是處理上傳文件請求的Action類的名字,該Action類所對應(yīng)的類名也為UploadAction。,13.1.3 上傳文件的Action類,這個例子使用了Struts 2來實現(xiàn),存在的一些上傳過程中所出現(xiàn)的信息,如上傳文件名、上傳文件類型、上傳文件的內(nèi)容。因此,需要在Action類

4、中必須有和這些信息對應(yīng)的屬性,才能在Action類中使用這些信息。 UploadAction是一個Action類,該類實現(xiàn)了上傳單個文件的功能。,13.1.4 配置上傳文件的Action類,配置UploadAction類的方法和配置普通的Action類的方法類似,只是需要使用標(biāo)簽來設(shè)置上傳文件的保存路徑。 如果此時在文件上傳時,服務(wù)器中已經(jīng)存在一個名為“abc.txt”的文件,但是在上傳時又將一個新文件起名為“abc.txt”,此時跳轉(zhuǎn)到reslt.jsp頁面后,會提示該文件已經(jīng)存在。,13.1.5 過濾上傳文件的類型,在一些Web程序中,往往會限制某一類文件類型的上傳,如只允許上傳圖片文件,

5、或者只允許上傳音樂文件等。Struts 2中實現(xiàn)該功能也十分的簡單,只需要在UpLoadAction中uploadContentType屬性進(jìn)行設(shè)置就可以了,通過這個屬性可以獲得上傳文件的類型,例如上傳文件的擴展名是JPEG,uploadContentType的實行就是images/JEPG。 有很多上傳文件的程序會限制上傳文件的類型,如只允許上傳圖像文件,在Struts 2中要實現(xiàn)這個功能也非常簡單。在UploadAction類中,有一個uploadContentType屬性,通過這個屬性可以獲得上傳文件的類型,如上傳文件的擴展名是jpg,則uploadContentType屬性的值是ima

6、ge/jpeg。,13.2 多個文件上傳,在實際的Web項目中,往往需要多個文件同時上傳,在前面已經(jīng)介紹了單個文件的上傳,使用Struts 2只需要聲明幾個數(shù)組或是List對象,就可以比較容易的將多個文件域上傳的數(shù)據(jù)進(jìn)行封裝,而程序員只需要關(guān)注處理邏輯就可以了。,13.2.1 上傳固定數(shù)目的文件,如果是用數(shù)組來上傳固定數(shù)目的文件,需要將Action中的一些屬性修改為數(shù)組類型 在單擊“添加文件”按鈕后,會在下方多出一個文件瀏覽框。,13.2.2 上傳任意數(shù)目的文件,除了可以使用數(shù)組來處理多個上傳文件了, 可以使用List對象來完成和數(shù)組同樣的工作,如UploadMoreAction類的代碼中的數(shù)

7、組類型的屬性可以修改成List類型。,13.3 Commo-FileUpload,Commons-FileUpload是apache組織所開發(fā)的用于上傳的組件,通過這個組件可以很容易的完成單個或者多個文件的上傳,在Struts 2中也可以使用Commons-FileUpload來進(jìn)行文件的上傳,本節(jié)中將使用Commons-FileUpload介紹上傳一個或者多個文件。,13.3.1 Commons-FileUpload,Commons-FileUpload組件是apache的Commons組件包中的一個組件,讀者可以通過如下的URL來下載Commons-FileUpload的最新版本。http

8、://fileupload/ 下載Commons-FileUpload組件目前的最新版本,在解開壓縮包后,需要在MyEclipse的webdemo工程中引用jar文件。Commons-FileUpload組件還依賴一個Commons-IO組件,該組件可以從如下的URL下載最新的版本/io/ 下載Commons-IO組件目前的最新版本,在解開壓縮包后,需要在MyEclipse的webdemo工程中引用jar文件。,13.3.2 上傳單個文件,使用Commons-FileUpload進(jìn)行文件的上傳非常簡單,只需要在

9、頁面中提供一個標(biāo)簽,并設(shè)置表單的enctype屬性值設(shè)為“multipart/form-data”就可以了。 在本示例中,上傳文件的頁面時uploadservlet.jsp,在頁面中有一個輸入上傳文件的文本框和一個輸入新文件名的文本框。輸入新文件名是為了給文件進(jìn)行重命名,如果不輸入新文件名的話,默認(rèn)是使用原來的文件名進(jìn)行上傳。,在FileItem接口中還定義了幾個方法來獲得表單域中的信息,這些方法如下。 getFieldName方法:該方法用于獲得表單域的name屬性值。 getString方法:該方法用于獲得表單value屬性值,其中方法的參數(shù)用于設(shè)置value屬性值的編碼格式。 getName方法:該方法僅對文件域有效,用于返回上傳文件的文件名。 getContentType方法:該方法僅對文件域有效,用于返回上傳文件的文件類型。 get方法:該方法僅對文件域有效,用于返回上傳文件的字節(jié)數(shù)組。 getIn

溫馨提示

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

評論

0/150

提交評論