文件上傳
1.文件上傳準(zhǔn)備:
- 1):需要表單,而且表單的請求方式必須是POST.
聯(lián)想GET和POST的區(qū)別:GET方式對表單數(shù)據(jù)大小有限制(不超過2KB),而POST沒有限制. - 2):需要表達,而且表單的編碼方式必須是二進制編碼.
<form action="" method="post" enctype="multipart/form-data"></form>
- 3):在表單中,需要上傳文件的控件.
<input type="file" name="headImg"/>
注意:使用multipart/form-data編碼之后,Servlet就再也不能通過request.getParameter方式來獲取請求參數(shù)了.
表單編碼:multipart/form-data
2.基于Apache FileUpload組件
準(zhǔn)備工作:
依賴: commons-fileupload-1.2.2.jar,commons-io-1.4.jar
通過文檔來學(xué)習(xí):
commons-fileupload-1.2.2/site/index.html--->using.html(用戶指南).
3.文件上傳的控制:
1.文件名處理.
- 1):針對于IE6來說,獲取上傳文件的名稱是:是一個全路徑名稱.
String fileName = "C:/Users/Administrator/Desktop/outman.png";
使用FilenameUtils工具類來處理.
FilenameUtils.getName(fileName);---->outman.png. - 2):把上傳文件保存在當(dāng)前應(yīng)用中,才可以使用HTTP協(xié)議訪問.
String dir = super.getServletContext().getRealPath("/upload"); - 3):使用UUID來存儲上傳文件的名稱.
String fileName = UUID.randomUUID()+"."+FilenameUtils.getExtension(item.getName());
2.緩存大小和臨時目錄.
- 1):緩存大小: 文件超過多少字節(jié),就存儲在臨時目錄中. 默認是10KB.
- 2):臨時目錄: 默認在Tomcat根/temp目錄.
修改緩存大小和臨時目錄:
//設(shè)置緩存大小為10KB
factory.setSizeThreshold(1024 * 10);
//設(shè)置臨時目錄:C:/temp,不建議修改.
factory.setRepository(new File("C:/temo"));
抽取FileUtil.
3.文件類型約束(只要求上傳圖片/壓縮文件/文檔資料).
4.文件大小約束(限定上傳文件的大小不能超過多少).
單個文件的數(shù)據(jù)大小:
一次完整請求表單的數(shù)據(jù)大小:
使用Map封裝請求信息(拓展)
4.Servlet3.0 支持文件上傳(拓展)
http://www.cnblogs.com/xdp-gacl/p/4224960.html
從Servlet3.0開始(JavaEE6,Tomcat7),Servlet自身支持文件上傳操作,很簡單.
文件下載
I18N
軟件的本地化:一個軟件在某個國家或地區(qū)使用時代乃,采用該國家或地區(qū)的語言钾埂,數(shù)字滋迈,貨幣扎唾,日期等習(xí)慣凿可。
軟件的國際化:軟件開發(fā)時搞监,讓它能支持多個國家和地區(qū)的本地化應(yīng)用材失。使得應(yīng)用軟件能夠適應(yīng)多個地區(qū)的語言和文化風(fēng)俗習(xí)慣蓝丙。
隨用戶區(qū)域信息而變化的數(shù)據(jù)稱為本地信息敏感數(shù)據(jù)磨淌。例如數(shù)字疲憋,貨幣等數(shù)據(jù)。
應(yīng)用程序的國際化就是在應(yīng)用軟件的設(shè)計階段梁只,使軟件能夠支持多個國家和地區(qū)的用戶的使用習(xí)慣缚柳。
國際化又稱為 i18n:internationalization.
資源文件編寫: 資源文件的命名:基名語言國家. properties
myApp_zh_CN.properties
myApp_en_US.properties