前端代码
<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)
}
}