在Servlet3.0以前,處理文件通常都是藉助第三方組件,經常使用的commons fileuploads。html
而Servlet3.0中使用Part方便的實現了文件上傳。java
實現文件上傳須要注意如下兩點內容:post
@MulitpartConfig註釋須要標註在@WebServlet註釋之上,以下:code
@WebServlet("/FileUploadServlet") @MultipartConfig(location = "/upload", maxFileSize = -1, maxRequestSize = -1, fileSizeThreshold = 1) public class FileUploadServlet extends HttpServlet { }
其中:orm
實現:htm
HTML:對象
<form action="FileUploadServlet" method="post" enctype="multipart/form-data"> 選擇文件<input type="file" name="file" id="file" /> <input type="submit" value="Go!" /> </form>
後臺Servlet:圖片
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { Part part = request.getPart("file"); System.out.println("文件類型:" + part.getContentType()); if (part.getContentType().contains("image")) { // 簡單判斷下,是否是圖片類型 ApplicationPart ap = (ApplicationPart) part; // 獲取上傳的文件名 String name = ap.getSubmittedFileName(); System.out.println("文件名稱:" + name); String path = request.getSession().getServletContext().getRealPath("/") + "upload\\"; File filePath = new File(path); if (!filePath.exists()) { filePath.mkdir();// 建立目錄 } String savePathName = path + name; System.out.println("savePathName:" + savePathName); // 保存文件 part.write(savePathName); response.getWriter().write("文件上傳成功:" + savePathName); } else { response.getWriter().write("file is not Img!"); } } catch (Exception e) { response.getWriter().write("上傳失敗!"); response.getWriter().write(e.toString()); } }
運行結果:ip