Servlet3.0如何實現檔案的上傳?

Tags: 檔案, 功能,

在Servlet2.5中,我們要實現檔案上傳功能時,一般情況下都需要藉助其他開源元件。然而在 Servlet3.0中提供了對檔案上傳的直接支援,不需要藉助任何第三方上傳元件,直接使用Servlet3.0提供的API就能夠實現檔案上傳功能了。那麼servlet3.0是如何實現檔案上傳的呢?下面是詳細講解步驟。

工具/原料

myeclipse或eclipse 、tomcat7.x

方法/步驟

編寫上傳頁面,在WebContent目錄下建立一個NewFile.jsp檔案,並編寫如下程式碼。注意: 必須加上 enctype="multipart/form-data" .表示以二進位制的資料格式來傳輸。

Servlet3.0如何實現檔案的上傳

Servlet3.0如何實現檔案的上傳

開發處理檔案上傳的Servlet

 1、使用註解@MultipartConfig將一個Servlet標識為支援檔案上傳。

 2、Servlet3.0將multipart/form-data的POST請求封裝成Part,通過Part對上傳的檔案進行操作。

Servlet3.0如何實現檔案的上傳

Servlet3.0如何實現檔案的上傳

將控制檯列印的檔案上傳地址複製到位址列。檢視上傳的檔案,頁面提示上傳成功!

Servlet3.0如何實現檔案的上傳

Servlet3.0如何實現檔案的上傳

Servlet3.0如何實現檔案的上傳

Servlet3.0如何實現檔案的上傳

在編寫servlet時,應該注意 必須註解 @MultipartConfig 將一個Servlet標識為支援檔案上傳,否則會導致上傳失敗。還有就是JSP頁面上 form表單中 ,必須加上 enctype="multipart/form-data" .表示以二進位制的資料格式來傳輸。

Servlet3.0如何實現檔案的上傳

檔案上傳servlet類的程式碼編寫。dopost()方法中的主要程式碼:(讀者可參考註釋自行進行編寫,然後按照以上步驟進行測試)。

request.setCharacterEncoding("utf-8"); //獲取檔案部件part Part part=request.getPart("filename"); //獲取伺服器的路徑 即上傳路徑 String root=request.getServletContext().getRealPath("/file"); //獲取上傳檔案的頭部資訊 String headname=part.getHeader("content-disposition"); //獲取檔案字尾名 String ext = headname.substring(headname.lastIndexOf("."), headname.length()-1); // 上傳目的地完整的路徑 String filename=root+"/"+UUID.randomUUID().toString()+ext; System.out.println(filename); //匯入檔案 part.write(filename); request.setAttribute("info", "上傳成功!"); request.getRequestDispatcher("/NewFile.jsp").forward(request, response); }

Servlet3.0如何實現檔案的上傳

相關問題答案