/** * * 上传文件 * */ public class FileUploadServlet2 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { // 1.创建磁盘文件项工厂----这里的temp为临时文件目录 String path_temp = this.getServletContext().getRealPath("temp"); DiskFileItemFactory factory = new DiskFileItemFactory(1024 * 1024, new File(path_temp)); // 2.创建文件上传的核心类 ServletFileUpload upload = new ServletFileUpload(factory); // 设置上传文件名的编码----以防文件名乱码 upload.setHeaderEncoding("utf-8"); // ServletFileUpload的API boolean multipartContent = upload.isMultipartContent(request);// 判断表单是否是文件上传的表单 if (multipartContent) { // 是文件上传的表单 // **解析request获得文件项集合 List<FileItem> parseRequest = upload.parseRequest(request); if (parseRequest!=null) { for (FileItem item : parseRequest) { //判断是不是一个普通表单项 boolean formField = item.isFormField(); if (formField) { //普通表单项 String fieldName = item.getFieldName(); String fieldValue = item.getString("UTF-8");//对普通表单项的内容编码 } else { //获取文件名 String fileName = item.getName(); //得到输入流 InputStream in = item.getInputStream(); //获取文件存放路径 String path = this.getServletContext().getRealPath("upload"); //将文件存入相应目录 OutputStream out = new FileOutputStream(path+"/"+fileName); IOUtils.copy(in, out); in.close(); out.close(); //最后删除temp目录下的临时文件、 item.delete(); } } } } else { // 非文件上传表单,用原始获取方式request.getParameter("表单name"); } } catch (FileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }