第一步:导入相关的jar
依赖 commons-io
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
第二步:配置spring.xml文件
<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 默认编码 -->
<property name="defaultEncoding" value="utf-8" />
<!-- 文件大小最大值 -->
<property name="maxUploadSize" value="10485760000" />
<!-- 内存中的最大值 -->
<property name="maxInMemorySize" value="40960" />
</bean>
第三步:写页面
<form action="${pageContext.request.contextPath}/emp/insertOne" method="post" enctype="multipart/form-data">
<input type="file" name="cover" />
<input type="submit" class="button" value="提交" />
</form>
第四步:写controller
@RequestMapping("/insertOne")
public String insertOne(MultipartFile cover, HttpServletRequest request, Emp emp){
String path = request.getSession().getServletContext().getRealPath("/img");
String fileName = cover.getOriginalFilename();
File dir = new File(path,fileName);
if(!dir.exists()){
dir.mkdir();
}
try {
cover.transferTo(dir);
empService.insertOne(emp);
return "redirect:/dept/showAll";
} catch (Exception e) {
e.printStackTrace();
return "jsp/addEmp";
}
}
第五步:测试
文件上传的注意事项
1.配置文件上传解析器 并且id=multipartResolver
2.用MultiPartFile接受文件对象 形参和文本框中的name保持一致
String originalFilename = aa.getOriginalFilename();
String contentType = aa.getContentType();
aa.transferTo(new File(realPath,originalFilename));
3.文件上传大小限制
<!--文件上传解析器 注意:id必须命名为multipartResolver-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--配置文件上传的最大值 默认只要加了文件解析器的springmvc对文件大小没有限制 20M-->
<property name="maxUploadSize" value="20971520"></property>
</bean>
4.文件上传前台的注意事项
必须为post形式的请求 ,文本框类型为file,enctype=multipart/form-data