文件上傳下載原理
在TCP/IP中,最早出現的文件上傳機制是FTP。它是將文件由客戶端發送到服務器的標准機制。
但是在jsp編程中不能使用FTP方法來上傳文件,這是由jsp運行機制所決定的
文件上傳原理:
通過為表單元素設置Method=“post” enctype=“multipart/form-data”屬性,讓表單提交的數據以二進制編碼的方式提交,在接收此請求的Servlet中用二進制流來獲取內容,就可以取到上傳文件的內容,從而實現文件的上傳。
表單enctype屬性
application/x-www-form-urlencoded 這是默認編碼方式,它只處理表單域里的value屬性值,采用這種編碼方式的表單會將表單域里的值處理成URL編碼方式
multipart/form-data 這種編碼方式的表單會以二進制流的方式來處理表單數據,這種編碼方式會把文件域指定文件的內容也封裝到請求參數里。
text/plain 這種方式主要適用於直接通過表單發送郵件的方式
文件下載原理
STEP1
需要通過HttpServletResponse.setContextType方法設置Content-Type頭字段的值,為瀏覽器無法使用某種方式或激活某個程序來處理MIME類型,例如“application/octet-stream” 或 “application/x-msdownload” 等。
STEP2
需要通過HttpServletResponse.setHeader方法設置Content-Disposition頭的值為“attachment;filename=文件名”
STEP3
讀取下載文件,通過HttpServletResponse.getOutputStream方法返回的ServletOutputStream對象來向客戶端寫入附件內容。