1. 程式人生 > >java中文件上傳的Bug

java中文件上傳的Bug

無法 中文 item data ipa inputtype TE In UC

文件上傳,有兩種方式,一種是自己解析文件流,一種是借助struct2中自帶的攔截器對文件進行解析

自己解析流文件:利用 commons-io-1.4.jar和commons-fileupload-1.2.1.jar來進行解析,相關的事項如下:
1.瀏覽器端註意事項
1.請求方式必須是 post
2.需要使用組件<inputtype="file" name="f"> 組件必須有名稱
3.表單必須設置encType="multipart/form-data"
2.服務器端處理
通過request對象,獲取InputStream,可以將瀏覽器提交的所有數據讀取到.
3.入門案例分析
在瀏覽器端創建一個可以上傳文件的表單,在服務器端通過commons-fileupload完成文件上傳。
瀏覽器端註意三件事情:
1.表單的method=post
2.設置encType=multipart/form-date
3.使用具甩name屬性的file元素
在服務器端
1.創建DiskFileItemFactory
2.創建ServletFileUpload
3.通過ServletFileUpload的parseRequest方法得到所有的FileItem
struct2中自帶的攔截器對文件進行解析:
這個原理同上,只是不可以用上述的 ServletFileUpload來獲取FileItem ,因為struts2自2.0以後的版本,會攔截文件流,所以無法使用該方法來進行文件上傳,必須使用struts2中自帶的方法對文件進行讀取,這也是這一次文件上傳案例中的bug.

java中文件上傳的Bug