图片+表单的上传

来源:互联网 发布:淘宝客服不回消息 编辑:程序博客网 时间:2024/05/17 03:47

前端代码

<form  action="/TeacherServlet?action=updateTeacherInfo" method="post" enctype="multipart/form-data" class="form-horizontal" ></form>//enctype="multipart/form-data" 主要是这句代码

servlet处理

    private void updateTeacherInfo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        Teacher teacher = (Teacher) request.getSession().getAttribute("teacher");        boolean isMultipart = ServletFileUpload.isMultipartContent(request);        if (isMultipart) {            try {                DiskFileItemFactory factory = new DiskFileItemFactory();                ServletFileUpload upload = new ServletFileUpload(factory);                upload.setHeaderEncoding("utf-8");                upload.setSizeMax(10 * 1024 * 1024);                List<FileItem> formItems = upload.parseRequest(request);                Iterator<FileItem> iter = formItems.iterator();                //依次处理每个表单域                while (iter.hasNext()) {                    FileItem item = iter.next();                    //处理普通表单                    if (item.isFormField()) {                        if ("teacher_name".equals(item.getFieldName()))                            teacher.setTeacher_name(item.getString("utf-8"));                        if ("teacher_sex".equals(item.getFieldName()))                            System.out.println(item.getString("utf-8"));                            teacher.setTeacher_sex(Integer.parseInt(item.getString("utf-8")));                        if ("teacher_age".equals(item.getFieldName()))                            teacher.setTeacher_age(Integer.parseInt(item.getString("utf-8")));                    }                    //处理文件表单                    else {                        //获得文件名及路径                        String fileName = item.getName();                        String suffix = fileName.substring(fileName.indexOf(".") + 1).toLowerCase();                        //图片格式判断                        if (fileName != null && fileName.indexOf(".") != -1) {                            if (suffix.equals("jpeg") || suffix.equals("jpg") || suffix.equals("gif") || suffix.equals("png") || suffix.equals("bmp") || suffix.equals("tiff")) {                                String name = new Date().getTime() + "." + fileName.substring(fileName.indexOf(".") + 1);                                //如果目录不存在,则创建                                File catalog = new File(getServletContext().getRealPath("/images/upload"));                                if (!catalog.exists()) catalog.mkdirs();                                File fullFile = new File(catalog, name);                                teacher.setTeacher_image_Path(name);                                System.out.println(teacher.toString());                                item.write(fullFile);                                new TeacherDaoImpl().updateTeacher(teacher, teacher.getTeacher_id());                                request.setAttribute("message", "提交成功");                            } else {                                request.setAttribute("message", "请上传 jpeg/jpg/gif/png/bmp/tiff 格式的图片");                                request.getServletContext().getRequestDispatcher(request.getContextPath() + "/jsp/teacher/right/myInfo/myInfo.jsp").forward(request, response);                            }                        } else {                            teacher.setTeacher_image_Path(teacher.getTeacher_image_Path());                            new TeacherDaoImpl().updateTeacher(teacher, teacher.getTeacher_id());                            request.setAttribute("message", "提交成功");                        }                        item.delete();                    }                }            } catch (Exception e) {                e.getStackTrace();                request.setAttribute("message", "错误信息: " + e.getMessage());            }            // 跳转到 myInfo.jsp            request.setAttribute("teacher", teacher);            request.getServletContext().getRequestDispatcher(request.getContextPath() + "/jsp/teacher/right/myInfo/myInfo.jsp").forward(request, response);        }    }