springmvc图片上传
加入jar包
在springmvc配置文件中加入
<!-- 上传文件 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8"/>
<!-- 最大内存大小5MB-->
<property name="maxInMemorySize" value="5242440"/>
<property name="resolveLazily" value="true"> </property>
</bean>
编写handle
package com.xieli.liu.controller;
import com.xieli.liu.exception.UserException;
import com.xieli.liu.pojo.RoleUser;
import com.xieli.liu.pojo.UserInfo;
import com.xieli.liu.service.UserInfoService;
import com.xieli.liu.validation.UserInfoGroup1;
import com.xieli.liu.validation.UserInfoGroup2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.util.List;
import java.util.UUID;
/**
* Created by Administrator on 2019-11-27.
*/
@Controller
@RequestMapping("/user")
public class UserInfoController {
@Autowired
UserInfoService userInfoService;
@RequestMapping("/findSaveUser")
public ModelAndView findSaveUser(ModelMap map,UserInfo userInfo) throws Exception {
List<UserInfo> userInfos = userInfoService.selectUserList(userInfo);
ModelAndView mv = new ModelAndView("editusermasseger");
mv.addObject("user", userInfos.get(0));
return mv;
}
@RequestMapping("/saveUser")
public String saveUser(ModelMap map, HttpServletRequest request, UserInfo userInfo, MultipartFile multipartFile) throws Exception {
String newFileName=null;
if(!multipartFile.isEmpty()){
//文件路经
String filePath = request.getSession().getServletContext().getRealPath("/")+"upload/";
//原始文件名
String originalFilename = multipartFile.getOriginalFilename();
//新的文件名
newFileName= UUID.randomUUID()+originalFilename.substring(originalFilename.lastIndexOf("."));
multipartFile.transferTo(new File(filePath+newFileName)); // 转存文件
}
if(newFileName!=null){
userInfo.setPhoto(newFileName);
}
//修改数据
userInfoService.updataUser(userInfo);
return "forward: findSaveUser.action";
}
}
编写页面代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html>
<head>
<title>用户信息</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/user/saveUser.action" method="post" enctype="multipart/form-data">
<table style="border: solid 1px">
<tr>
<td>姓名</td>
<td ><input type="text" name="userId" id="userId" value="${user.userId}"/></td>
</tr>
<tr>
<td>姓名</td>
<td ><input type="text" name="userName" id="userName" value="${user.userName}"/></td>
</tr>
<tr>
<td>密码</td>
<td ><input type="text" name="userPwd" id="userPwd" value="${user.userPwd}"/></td>
</tr>
<tr>
<td>昵称</td>
<td><input type="text" name="nickName" id="nickName" value="${user.nickName}"/></td>
</tr>
<tr>
<td colspan="2">
<input name="multipartFile" type="file">
<c:if test="${user.photo!=null}">
<img src="${pageContext.request.contextPath}/upload/${user.photo}" width="100" height="100">
</c:if>
</td>
</tr>
</table>
<input type="submit" value="保存"/>
</form>
</body>
<script type="text/javascript">
</script>
</html>
测试
输入http://localhost:8080/ssm/user/findSaveUser.action?userId=4
选择要上传的图片点击“保存”