在springmvc中使用commons-upload
引入maven依赖
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
在springmvc的xml配置文建中配置文件上传解析器
<!-- 配置文件上传解析器:CommonsMultipartResolver -->
<!-- id属性值必须是multipartResolver -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 允许上传文件大小,以字节计算 -->
<property name="maxUploadSize" value="1048576" />
</bean>
文件上传demo
UserController
@RequestMapping("/to_add")
public String toAddPage() {
return "user/add";
}
@PostMapping("/add")
public String addUser(MultipartFile file) throws IllegalStateException, IOException {
//判断是否有文件
long size = file.getSize();
if(size <= 0) {
log.warn("未上传文件");
return "redirect:/user/to_add";
}
//为文件重命名
String originalFileName = file.getOriginalFilename();
//获取文件后缀名
String suffix = FilenameUtils.getExtension(originalFileName);
String uuid = UUID.randomUUID().toString().replaceAll("-","");
//新文件名称
String newFilename = uuid + "." +suffix;
//文件上传文件夹(分布式文件系统)
File uploadDir = new File("d:/upload");
if(!uploadDir.exists()) {
uploadDir.mkdir();
}
// 目标文件
File destFile = new File(uploadDir,newFilename);
//实现上传(SourceFile-->输入流-->输出流-->destFile)
file.transferTo(destFile);
//重定向到"/user/to_add"请求
return "redirect:/user/to_add";
}
注意在springmvc配置文件中引入
<mvc:resources location="file:d:/upload/" mapping="/pics/**" />