Servlet & JSP 檔案上傳
1.介紹:
檔案上傳是將客戶端的一個或多個檔案傳輸到伺服器上儲存。
2.客戶端要求:
實現檔案上傳首先需要在客戶端的HTML頁面中通過一個表單開啟一個檔案,然後提交給伺服器。上傳檔案表單的<form>標籤中應該指定enctype屬性,它的值應該為"multipart/form-data",<form>標籤的method屬性應該指定為"post",同時表單應該提供一個<input type="file">的輸入域用於指定上傳的檔案。
3.伺服器端要求:
當表單提交時,瀏覽器將表單各個部分的資料傳送到伺服器端,每個部分之間使用分隔符分隔開。在伺服器端使用Servlet就可以得到上傳來的檔案內容並將其儲存到伺服器的特定位置。通過請求物件的下面兩個方法來處理上傳的檔案:
(1)public Part getPart(String name): 返回用name指定名稱的Part物件。
(2)public Collection<Part> getParts():返回Part物件的一個集合。
Part是Servlet 3.0 API新增的一個介面,定義在javax.servlet.http包中。它表示多部分表單資料的一部分。它提供下面常用方法:
(1)public InputStream getInputStream() throws IOException:返回Part物件的輸入流物件。
(2)public String getContentType():返回Part物件的內容型別。
(3)public String getName():返回Part物件的名稱。
(4)public long getSize():返回Part物件的大小。
(5)public Collection<Part> getHeaderNames():返回Part物件頭名稱的集合。
(6)public void delete() throws IOException:刪除臨時檔案。
(7)public void write(String fileName) throws IOException:將Part物件寫到指定的檔案中。