第一步:导入依赖
<!--文件下载和上传的依赖-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.2</version>
</dependency>
第二步:写配置 在spring-mvc 中编写如下配置
<!--配置文件上传解析器 id必须是这个 id="multipartResolver"-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--设置默认的编码-->
<property name="defaultEncoding" value="UTF-8"/>
<!--设置最大上传文件的大小 -->
<property name="maxUploadSize" value="#{1024*1024*20}"/>
</bean>
第三步:编写控制器层
// 存在单文件和多文件同时上传 前台传的上传文件的名称不一样
@RequestMapping("/upload")
public String upload(@RequestParam(value = "username",required = false) String username,
@RequestParam("headerimg") MultipartFile [] file,
@RequestParam("header") MultipartFile oneFile,
Model model){
System.out.println("上传的文件信息");
for (MultipartFile multipartFile : file) {
//判断一个文件是否上传了 isEmpty()是否是空的
//上传的不是一个空的
if (!multipartFile.isEmpty()){
//我们就上传文件
try {
multipartFile.transferTo(new File("D:\\pic\\upload\\"+multipartFile.getOriginalFilename()));
model.addAttribute("msg","文件上传成功了");
} catch (Exception e) {
model.addAttribute("msg","文件上传失败了"+e.getMessage());
}
}
}
try {
oneFile.transferTo(new File("D:\\pic\\upload\\"+oneFile.getOriginalFilename()));
model.addAttribute("msg","文件上传成功了");
} catch (Exception e) {
model.addAttribute("msg","文件上传失败了"+e.getMessage());
}
return "forward:/index.jsp";
}
第四步:编写视图层
<form action="${pageContext.request.contextPath}/upload" enctype="multipart/form-data" method="post">
用户头像:<input type="file" name="headerimg"/><br/>
用户头像:<input type="file" name="headerimg"/><br/>
用户头像:<input type="file" name="headerimg"/><br/>
用户头像:<input type="file" name="headerimg"/><br/>
用户头像:<input type="file" name="header"/><br/>
用户名:<input type="text" name="username"/><br/>
<input type="submit" value="提交"/>
</form>
文件上传步骤:
<%--
文件上传:
1.文件上传表单准备 enctype="multipart/form-data
2.导入fileupload包
3.只要在springmvc配置文件中,编写一个配置,配置文件上传解析器(MultipartResolver)
4.文件上传请求处理
在处理器方法上写一个
@RequestParam("headerimg") MultipartFile file,封装当前文件的信息,直接保存
--%>