Spring MVC上传文件
Spring MVC上传文件
1. 首先,我们先把需要用到的jar包加进来
2. 然后,把在springmvc.xml配置文件中配置文件上传解析器:
如:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设定默认编码 -->
<property name="defaultEncoding"value="UTF-8"></property>
<!-- 设定文件上传的最大值5MB,5*1024*1024 -->
<property name="maxUploadSize"value="5242880"></property>
</bean>
3. 然后咱们就可以在jsp文件上写上添加文件的标签了,
如:
<form action="${pageContext.request.contextPath }/test" method="post"enctype="multipart/form-data">
<h3>文件上传</h3>
文件1:<input name="file"type="file"/><br /><br />
<input type="submit"value="Submit" />
</form>
要注意的是,form 标签一定要填上enctype="multipart/form-data"属性,值也是显示这个。
4. 现在一切就绪,然后咱们就可以编写Controller了,
@RequestMapping(value="/test",method=RequestMethod.POST)
public String uploadFile(MultipartFile uploadFile,HttpSession session) throws IllegalStateException, IOException{
//用session来获得要保存文件地址的路径
String path =session.getServletContext().getRealPath("/WEB-INF/images/");
//判断上传的文件是否是空的
if(!uploadFile.isEmpty()){
//获得上传文件的原名称
String oldName =uploadFile.getOriginalFilename();
//然后用System.currentTimeMillis()来与原名称组成新的文件名,以至于保证保存文件时,文件名不会有重复
String newName = System.currentTimeMillis()+oldName;
//根据路径和文件名创建文件
File file = new File(path, newName);
//然后利用FileUtils工具类把数据复制过去
FileUtils.copyInputStreamToFile(uploadFile.getInputStream(),file);
}
return"redirect:/index";
5 启动Tomcat,访问web项目
然后选择文件,确认:
就这样,文件就上传了
然后有啥需要改进的请朋友们提下意见,我会非常感谢的。
最后,祝各位喜欢Java的朋友,事业进步,感情美满