這個類(原文class)代表從multipart表單數(shù)據(jù)post請求中獲得的一個文件或者表單項(form item)耕驰。
從FileUpLoad 實例獲取這個類的實例后钳恕,你既可以要求用get方法一次性獲取文件的全部內(nèi)容,也可以用getInputStream方法獲得輸入流,不需要用內(nèi)存載入文件,這對于大型的文件是比較方便的。
然而這個接口沒有繼承javax.activation.DataSource per se(這里的per se 不知道翻成什么)(來避免很少使用的依賴),幾個設計的方法是特別為設計為與那個接口同名的方法。這允許了這個接口的實現(xiàn)刘急,也使用了javax.activation.DataSource,確保盡量少的額外工作浸踩。
方法
- getInputStream叔汁,返回一個輸入流對象,用來獲取文件的內(nèi)容
- getContentType检碗,獲取文本類型的String型
- getName据块,獲取文件在用戶文件系統(tǒng)的名字,通常就是文件名折剃,沒有路徑的信息另假,但是一些客戶端,比如opera瀏覽器怕犁,會包含路徑的信息边篮。String 型
- isInMemory,true的話奏甫,表示文件內(nèi)容會被內(nèi)存讀取戈轿。譯者注:即 用get方法獲取而不是用輸入流。
- long getSize(),獲得FileItem的size扶檐。
- byte[] get(), 獲得文件的內(nèi)容凶杖,以byte數(shù)組的形式胁艰。
- String getString(String encoding),用指定的編碼方式以字符串的形式獲取文件的內(nèi)容款筑。
- 方法7智蝠,沒有輸入的話,即用默認的編碼方式
- void write(File file)方法奈梳,一個很方便的方法杈湾,把一個上傳文件保存到硬盤,文件路徑由輸入的一個File型決定攘须。用戶不管你是先存到內(nèi)存還是存到硬盤的臨時路徑漆撞。他們只想上傳文件到一個文件。(換言之于宙,這個方法的具體實現(xiàn)不用管浮驳,這個方法都可以做到存入一個文件這個功能)
但如果對同一個item使用多次,這個方法并不一定會成功捞魁。這允許/考慮一個特別的實現(xiàn)至会,比如,文件重命名谱俭,而不是復制所有的根本的數(shù)據(jù)奉件,因此獲得一個顯著的性能好處。 - delete()刪除文件item的所以根本的存儲昆著,包括有關聯(lián)的臨時硬盤文件县貌。盡管當這個FileItem被垃圾回收時,這些存儲會被自動刪除凑懂,這個方法可以確保在一個更早的時間刪除煤痕,因此保留系統(tǒng)的資源。
- filedName的get & set 方法接谨。
- setFormField(boolean),指定一個FileItem是否是簡單表單屬性還是上傳文件杭攻。
- getOutputStream,獲得一個OutputStream疤坝,可以用來存儲文件的內(nèi)容兆解。
繼承 FileItemHeaderSupport接口