图片+表单的上传

前端代码

<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);
        }

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值