SpringMVC中关于文件上传分为单个文件上传和多文件上传。
1.不管是单文件上传还是多文件上传,需要倒入的jar包是不变的,这里我导入了3个jar包分别是:
commons-io-2.4.jar,commons-lang-2.6.jar(用于生成随机数的工具包),commons-fileupload-1.3.3.jar
2.Spring-servlet.xml配置用于文件上传的MultipartResolver解析器:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="5000000"></property>
<property name="defaultEncoding" value="utf-8"></property>
</bean>
3.更改表单提交信息
<form id="userForm" name="userForm" enctype="multipart/form-data" method="post"
action="${pageContext.request.contextPath }/user/adduser.html">
4.写Hanlder(单文件上传)
@RequestMapping(value="addUser.html",method=ReuqestMethod.POST)
public String addUser(User user,@ReuqestParam(value="user_pic")MultipartFile user_pic,HttpServletRequest request){
String path=request.getSession().getServletContext().getRealPath("statics/upload");//存储地址
if(!user_pic.isEmpty()){
String fileName=System.currentTimeMillis()+RandomUtils.nextInt(1000000)+"."+
FilenameUtils.getExtension(file.getOriginalFilename());//文件名
File file=new File(path,fileName);
file.transferTo(file)//存入
user.setPic(fileName);//将文件名保存在对象中
);
}
}
多文件上传
//uploadfiles为上传标签的name值,多个上传文件的name值应该一致,其余部分就是和单文件上传差不多,只是需要循环得到的数组
public String adduser(User user,
@RequestParam(value = "uploadfiles", required = false) MultipartFile[] uploadfiles,
HttpServletRequest request) {}