一、原理介紹
1.文件上傳原理
在TCP/IP中,最早出現的文件上傳機制是FTP。它是將文件由客戶端發送到服務器的標準機制。但是在JSP編程過程中不能使用FTP方法來上傳文件,這是由JSP的運行機制所決定的。
在JSP中通過爲表單元素設置Method="post"
enctype="multipart/form-data"屬性,讓表單提交的數據以二進制編碼的方式提交,在接受此請求的Servlet中用二進制流來獲取內容,就可以去的文件上傳的內容,從而實現文件的上傳。
下面是表單enctype屬性:
Application/x-www-form-urencoded |
該屬性爲默認編碼方式,它只處理表單域裏面的value屬性值,採用這種編碼方式的表單會將表單域的值處理成URL編碼方式。 |
multipart/form-data |
這種編碼方式的表單會以二進制流的方式來處理表單數據,這種編碼方式會把文件域制定文件的內容也封裝到請求參數裏。 |
text/plain |
這種方式主要適用與直接通過表單發送郵件的方式。 |
2.文件下載原理
第一步:需要通過HttpServletResponse.setContentType方法設置Content-Type投資端的值,爲瀏覽器無法使用某種方式或激活某個程序來處理的MIME類型,例如,“application/octetstream”或者“application/x-msdownload”等。
第二步:需要通過HttpServletResponse.setHeader方法設置Content-Disposition頭的值爲“attachment;filename = 文件名”
第三部:讀取下載文件,調用HttpServletResponse.getOutputStream方法返回的ServletOutputStream對象來向客戶端寫入附件文件內容。