添加commons-fileupload依赖包
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
创建Action方法
例如,下面的代码为一段简单的上传文件Action示例代码
@RequestMapping(value = "/simple", method = RequestMethod.POST)
public Map simple(String name, MultipartFile file) {
Map map = new HashMap();
if (!file.isEmpty()) {
try {
byte[] bytes = file.getBytes();
BufferedOutputStream stream =
new BufferedOutputStream(new FileOutputStream(new File(name)));
stream.write(bytes);
stream.close();
return map;
} catch (Exception e) {
return map;
}
} else {
return map;
}
}
限制上传文件的最大允许值
@Bean
public MultipartResolver resolver() {
CommonsMultipartResolver resolver = new CommonsMultipartResolver();
//将文件大小的检验解析放在框架里处理
resolver.setResolveLazily(true);
resolver.setMaxUploadSize(2048);
return resolver;
}
捕获因文件大小超出最大允许极限值引发的异常
@ExceptionHandler(MaxUploadSizeExceededException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public @ResponseBody Map handleException(MaxUploadSizeExceededException ex, HttpServletRequest request) {
Map result = new HashMap();
result.put("error", "exceed max file sieze,upload error");
return result;
}