一:文件的上传
- spring MVC为文件的上传提供了直接的支持,这种支持是通过即插即用的MultipartResolver实现的,Spring 用 Jakarta Commons FileUpload 技术实现了一个MultipartResolver实现类:CommonsMultipartResolver
- springMVC上下文中默认没有装配MulitipartResolver,因此默认情况下不能处理文件上传工作,如果想使用springMVC提供的文件上传功能,则需要配置MultipartResolver。
二:配置 MultipartResolver
三:实现
1.导入jar包
commons-fileupload-1.2.1.jar
commons-io-2.0.jar
2.配置spring mvc文件
<!-- 配置文件上传 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="200000"></property>
<property name="defaultEncoding" value="UTF-8"></property>
</bean>
3.控制器方法
@RequestMapping("/testFileUpload")
public String testFileUpload(@RequestParam MultipartFile[] files,HttpServletRequest request ) throws Exception, IOException {
for(MultipartFile file :files) {
if(file.isEmpty()) {
System.out.println("文件未上传");
}else {
//得到上传的文件名
String fileName=file.getOriginalFilename();
//得到服务器项目发布运行所在地址
String path1=request.getSession().getServletContext().getRealPath("image")+File.separator;
//用日期作为标识
String path=path1+new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+fileName;
//查看文件上传路径
System.out.println(path);
//把文件上传到path路径下
File localFile =new File(path);
//如果目录不存在,则创建目录
if(!localFile.exists()) {
localFile.mkdirs();
}
file.transferTo(localFile);
}
}
return "success";
}
4.测试jsp,其中enctype必须为"multipart/form-data"
<form action="testFileUpload" method="post" enctype="multipart/form-data">
<input type="file" name="files">
<input type="file" name="files">
<input type="submit" value="上传">
</form>