FileItem類的常用方法:
1. boolean isFormField()
isFormField方法用於判斷FileItem類對象封裝的數據是一個普通文本表單字段,還是一個文件表單字段,如果是普通表單字段則返回true,否則返回false。因此,可以使用該方法判斷是否為普通表單域,還是文件上傳表單域。
2. String getName()
getName方法用於獲得文件上傳字段中的文件名。
注意IE或FireFox中獲取的文件名是不一樣的,IE中是絕對路徑,FireFox中只是文件名。
3. String getFieldName()
getFieldName方法用於返回表單標簽name屬性的值。如上例中<input type="text" name="column" />的value。
4. void write(File file)
write方法用於將FileItem對象中保存的主體內容保存到某個指定的文件中。如果FileItem對象中的主體內容是保存在某個臨時文件中,該方法順利完成后,臨時文件有可能會被清除。該方法也可將普通表單字段內容寫入到一個文件中,但它主要用途是將上傳的文件內容保存在本地文件系統中。
5. String getString()
getString方法用於將FileItem對象中保存的數據流內容以一個字符串返回,它有兩個重載的定義形式:
public java.lang.String getString()
public java.lang.String getString(java.lang.String encoding)
throws java.io.UnsupportedEncodingException
前者使用缺省的字符集編碼將主體內容轉換成字符串,后者使用參數指定的字符集編碼將主體內容轉換成字符串。如果在讀取普通表單字段元素的內容時出現了中文亂碼現象,請調用第二個getString方法,並為之傳遞正確的字符集編碼名稱。
6. String getContentType()
getContentType 方法用於獲得上傳文件的類型,即表單字段元素描述頭屬性“Content-Type”的值,如“image/jpeg”。如果FileItem類對象對應的是普通表單字段,該方法將返回null。
7. boolean isInMemory()
isInMemory方法用來判斷FileItem對象封裝的數據內容是存儲在內存中,還是存儲在臨時文件中,如果存儲在內存中則返回true,否則返回false。
8. void delete()
delete方法用來清空FileItem類對象中存放的主體內容,如果主體內容被保存在臨時文件中,delete方法將刪除該臨時文件。
盡管當FileItem對象被垃圾收集器收集時會自動清除臨時文件,但及時調用delete方法可以更早的清除臨時文件,釋放系統存儲資源。另外,當系統出現異常時,仍有可能造成有的臨時文件被永久保存在了硬盤中。
9. InputStream getInputStream()
以流的形式返回上傳文件的數據內容。
10. long getSize()
返回該上傳文件的大小(以字節為單位)。