fileitem方法_FileItem的常用方法
下面介紹FileItem類中的幾個(gè)常用的方法:1. isFormField方法isFormField方法用于判斷FileItem類對(duì)象封裝的數(shù)據(jù)是否屬于一個(gè)普通表單字段,還是屬于一個(gè)文件表單字段,如果是普通表單字段則返回true,否則返回false。該方法的完整語法定義如下:public boolean isFormField()2. getName方法getName方法用于獲得文件上傳字段中的文件名,對(duì)于圖1.3中的第三個(gè)分區(qū)所示的描述頭,getName方法返回的結(jié)果為字符串“C:\bg.gif”。如果FileItem類對(duì)象對(duì)應(yīng)的是普通表單字段,getName方法將返回null。即使用戶沒有通過網(wǎng)頁表單中的文件字段傳遞任何文件,但只要設(shè)置了文件表單字段的name屬性,瀏覽器也會(huì)將文件字段的信息傳遞給服務(wù)器,只是文件名和文件內(nèi)容部分都為空,但這個(gè)表單字段仍然對(duì)應(yīng)一個(gè)FileItem對(duì)象,此時(shí),getName方法返回結(jié)果為空字符串"",讀者在調(diào)用Apache文件上傳組件時(shí)要注意考慮這個(gè)情況。getName方法的完整語法定義如下:public
String getName()注意:如果用戶使用Windows系統(tǒng)上傳文件,瀏覽器將傳遞該文件的完整路徑,如果用戶使用Linux或者Unix系統(tǒng)上傳文件,瀏覽器將只傳遞該文件的名稱部分。3.getFieldName方法getFieldName方法用于返回表單字段元素的name屬性值,也就是返回圖1.3中的各個(gè)描述頭部分中的name屬性值,例如“name=p中的“p。getFieldName方法的完整語法定義如下:public String getFieldName()4. write方法write方法用于將FileItem對(duì)象中保存的主體內(nèi)容保存到某個(gè)指定的文件中。如果FileItem對(duì)象中的主體內(nèi)容是保存在某個(gè)臨時(shí)文件中,該方法順利完成后,臨時(shí)文件有可能會(huì)被清除。該方法也可將普通表單字段內(nèi)容寫入到一個(gè)文件中,但它主要用途是將上傳的文件內(nèi)容保存在本地文件系統(tǒng)中。其完整語法定義如下:public
void write(File file)5.getString方法 getString方法用于將FileItem對(duì)象中保存的主體內(nèi)容作為一個(gè)字符串返回,它有兩個(gè)重載的定義形式:public java.lang.String getString()public java.lang.String getString(java.lang.String encoding) throws java.io.UnsupportedEncodingException前者使用缺省的字符集編碼將主體內(nèi)容轉(zhuǎn)換成字符串,后者使用參數(shù)指定的字符集編碼將主體內(nèi)容轉(zhuǎn)換成字符串。如果在讀取普通表單字段元素的內(nèi)容時(shí)出現(xiàn)了中文亂碼現(xiàn)象,請(qǐng)調(diào)用第二個(gè)getString方法,并為之傳遞正確的字符集編碼名稱。6.
getContentType方法getContentType 方法用于獲得上傳文件的類型,對(duì)于圖1.3中的第三個(gè)分區(qū)所示的描述頭,getContentType方法返回的結(jié)果為字符串“image/gif”,即“Content-Type”字段的值部分。如果FileItem類對(duì)象對(duì)應(yīng)的是普通表單字段,該方法將返回null。getContentType 方法的完整語法定義如下:public String getContentType()7. isInMemory方法isInMemory方法用來判斷FileItem類對(duì)象封裝的主體內(nèi)容是存儲(chǔ)在內(nèi)存中,還是存儲(chǔ)在臨時(shí)文件中,如果存儲(chǔ)在內(nèi)存中則返回true,否則返回false。其完整語法定義如下:public
boolean isInMemory()8. delete方法delete方法用來清空FileItem類對(duì)象中存放的主體內(nèi)容,如果主體內(nèi)容被保存在臨時(shí)文件中,delete方法將刪除該臨時(shí)文件。盡管Apache組件使用了多種方式來盡量及時(shí)清理臨時(shí)文件,但系統(tǒng)出現(xiàn)異常時(shí),仍有可能造成有的臨時(shí)文件被永久保存在了硬盤中。在有些情況下,可以調(diào)用這個(gè)方法來及時(shí)刪除臨時(shí)文件。其完整語法定義如下:public void delete()FileUploadException類在文件上傳過程中,可能發(fā)生各種各樣的異常,例如網(wǎng)絡(luò)中斷、數(shù)據(jù)丟失等等。為了對(duì)不同異常進(jìn)行合適的處理,Apache文件上傳組件還開發(fā)了四個(gè)異常類,其中FileUploadException是其他異常類的父類,其他幾個(gè)類只是被間接調(diào)用的底層類,對(duì)于Apache組件調(diào)用人員來說,只需對(duì)FileUploadException異常類進(jìn)行捕獲和處理即可。舉例:String
path = request.getSession().getServletContext().getRealPath("/") + ;DiskFileItemFactory factory = new DiskFileItemFactory ();factory.setSizeThreshold(4096);ServletFileUpload upload = new ServletFileUpload(factory);upload.setFileSizeMax(1024 * 1024);List fileItems
= upload.parseRequest(request);Iterator it = fileItems.iterator();while(it.hasNext()){FileItem item = (FileItem)it.next();if(!item.isFormField){Date now = new Date();SimpleDateFormat s = new SimpleDateFormat(yyyyMMddHHmmssSS);String name = sdf.format(now)
+ ".jpg";item.write(new File(path + name)); }}
版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的fileitem方法_FileItem的常用方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机专业论文设计与实现,计算机专业论文
- 下一篇: jsoup 去除html标签,如何使用j