FileItem API详解及演示
生活随笔
收集整理的這篇文章主要介紹了
FileItem API详解及演示
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
FileItem1.isFormField用于判斷是否是上傳組件.如果是<input type="file">返回的就是false,否則返回true.2.getFieldName();返回值String,得到組件名稱 <input name="">3.getName();返回值是String,得到的是上傳文件的名稱.注意:瀏覽器不同,它們得到的效果不一樣。1.包含全路徑名稱 例如: C:\Users\Administrator\Desktop\a.txt2.只包含上傳文件名稱 例如:a.txt4.getString();這個方法可以獲取非上傳組件的內容,相當于 getParameter方法作用。問題:如果信息是中文,會出現亂碼,解決方案 getString("utf-8");如果是上傳組件,上傳的文件是文本文件,可以獲取到文件文件的內容。但是如果不是文件文件,例如:是一張圖片,這樣獲取合適嗎?5.獲取上傳文件的內容,保存到服務器端.item.getInputStream();它是用于讀取上傳文件內容的輸入流.使用文件復制操作就可以完成文件上傳。6.刪除臨時文件item.delete();------------------------------------------------------------
總結:關于文件上傳時的亂碼問題:1.上傳文件名稱亂碼ServletFileUpload.setHeaderEncoding("utf-8"); 2.非上傳組件內容亂碼FileItem.getString("utf-8");3.思考:上傳文件信息是否會亂碼,需要解決嗎?不需要解決,因為我們在上傳時,使用的字節流來進行復制。
FileItem 表示文件上傳表單中 每個數據部分
boolean isFormField() 判斷該數據項是否為文件上傳項,true 不是文件上傳 false 是文件上傳
if(fileItem.isFormField()){// 不是上傳項java.lang.String getFieldName() 獲得普通表單項name屬性java.lang.String getString() / java.lang.String getString(java.lang.String encoding) 獲
得普通表單項value屬性 傳入編碼集用來解決輸入value亂碼
}else{// 是上傳項java.lang.String getName() 獲得上傳文件名 (注意IE6存在路徑)java.io.InputStream getInputStream() 獲得上傳文件內容輸入流// 上傳文件void delete() 刪除臨時文件(刪除時,必須要管理輸入輸出流)
}注意事項:因為文件上傳表單采用編碼方式multipart/form-data 與傳統url編碼不同,所有getParameter
方法不能使用 setCharacterEncoding 無法解決輸入項亂碼問題
?
總結
以上是生活随笔為你收集整理的FileItem API详解及演示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ServletFileUpload AP
- 下一篇: 多文件上传操作