文件的上傳刻恭,瀏覽器在上傳的過程中是將文件以流的形式提交到服務(wù)器端的歇式,如果直接使用Servlet獲取上傳文件的輸入流然后再解析里面的請求參數(shù)是比較麻煩,可以使用apache的這個包commons-fileUpload上傳組件
jar包可以從http://mirrors.tuna.tsinghua.edu.cn/apache/這個網(wǎng)站下載
一、開發(fā)環(huán)境的配置:
導(dǎo)入上傳相關(guān)jar包
二、實現(xiàn)文件的上傳
upload.jsp表單頁面
message.jsp頁面
uploadServlet
使用apache的common-upload包的步驟
得到上傳文件路徑
1署海、創(chuàng)建一個DiskFileItemFactory工廠
/2、創(chuàng)建一個文件上傳解析器
3医男、判斷提交上來的數(shù)據(jù)是否是上傳表單的數(shù)據(jù)
4砸狞、使用ServletFileUpload解析器解析上傳數(shù)據(jù)
在web.xml中注冊UploadServlet
三、文件上傳需要注意的問題
1昨登、保證服務(wù)器安全趾代,上傳的文件應(yīng)該放在外界無法訪問的目錄下,如WEB-INF下
2丰辣、防止文件覆蓋現(xiàn)象撒强,為文件產(chǎn)生一個唯一的文件名
3、為防止一個目錄下出現(xiàn)太多文件笙什,要使用hash算法打散存儲
4飘哨、限制上傳文件的最大值
5、限制上傳文件的類型
實現(xiàn)文件的下載
一琐凭、列出要下載的文件資源
在DoFileServlet中列出要下載的文件資源
找到文件路徑
存儲文件名
發(fā)送文件達顯示頁面
在web.xml配置
設(shè)置list.jsp顯示界面
二芽隆、實現(xiàn)文件下載
downloadServlet
文件名
上傳文件的路徑
文件名對應(yīng)的子目錄
文件File
獲取純粹的文件名
設(shè)置響應(yīng)頭控制瀏覽器行為的setHeader方法
使用IO流下載文件