在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