第一步:修改web.xml
为SpringMVC添加Servlet3文件上传支持:
SpringMVCDispatcher
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:applicationContext.xml
1
true
5242880
20971520
0
第二步:修改applicationContext.xml
添加上传文件的解析器:
第三步:上传文件的页面
添加Brand
第四步:处理文件上传的Controller
@Controller
@RequestMapping("/brand")
public class BrandController {
@PostMapping("/add")
public void add(HttpServletRequest request) throws ServletException, IOException {
final Part part = request.getPart("logo321");
String header = part.getHeader("content-disposition");//获取请求头
String originalFileName = getFileName(header); //获取文件名
final String suffix = originalFileName.substring(originalFileName.lastIndexOf("."));
String filename= WeGoConst.BRAND_LOGO_PATH+UUID.randomUUID()+suffix;
try {
part.write(filename);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
/**
* 根据请求头解析出文件名
* @param header 请求头
* @return 文件名
*/
public String getFileName(String header) {
String[] temp = header.split(";")[2].split("=");
//获取文件名,兼容各种浏览器的写法
String fileName = temp[1].substring(temp[1].lastIndexOf("\\") + 1).replaceAll("\"", "");
return fileName;
}
}