springmvc 文件上传案例
来源:互联网 发布:美国退出亚太 知乎 编辑:程序博客网 时间:2024/06/05 17:45
第一步:在springmvc.xml中配置文件上传解析器--- Multipart解析器
<!-- Multipart解析器 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置上传文件的最大尺寸为5MB -->
<property name="maxUploadSize">
<value>5242880</value>
</property>
</bean>
//特别说明:bean的id固定写成multipartResolver,因为在springmvc的核心类DispatcherServlet中已经规定了,
使用Multipart解析器,bean的id就必须这么写,里面还规定了其他的一些成员变量的属性值要求.
第二步:导入jar包:
CommonsMultipartResolver解析器依赖commons-fileupload和commons-io,加入如下jar包:
1,commons-io-2.4.jar
2,commons-fileupload-1.2.2.jar
第三步:在controller中实现相关代码
//特别说明:
在controller方法形参上添加MultipartFile类型的参数,参数名称和上传页面上file的名称一致,才可以绑定成功。
@RequestMapping("/submitItem")
public String submitItem(Items items,@RequestParam("file")MultipartFilefile) throws Exception, IOException{
//使用SpringMVC注解RequestParam来指定表单中的file参数
if(file !=null && file.getOriginalFilename() !=null &&!file.getOriginalFilename().equals("")){
//获取原始文件名
String originalFilename = picture.getOriginalFilename();
//将原文件名进行截取,并赋予一个唯一的文件名
String fileName = UUID.randomUUID()+originalFilename.substring(originalFilename.lastIndexOf("."));
//构造一个新文件
File newFile = new File("F:\\javaEE\\upload\\temp\\"+fileName);
//将文件写入磁盘中
file.transferTo(newFile);
}
//调用service层
itemsService.updateItems(items);
//返回一个列表页面
return "forward:queryItems.action";
}
第四步:jsp页面
在form中指定multipart编码格式:enctype="multipart/form-data"
如果form表单上添加enctype="multipart/form-data",而springmvc.xml中没有配置multipart解析器,
此时其它类型参数(pojo,基本类型)都不能绑定成功。
所以,主要只要form中有enctype="multipart/form-data"配置,
必须要springmvc.xml中配置multipart解析器
补充说明:有些哥们可能会疑惑,为什么方法的形参能是MultipartFile,(Items 是pojo类型),这涉及到参数绑定知识,我也没怎么搞明白.
还有就是有哥们说一定要使用SpringMVC注解RequestParam来指定表单中的file参数,
但是我试过,不指定也是可以的,希望楼下哥们能给我解答一下,感谢!
- springmvc 文件上传案例
- springmvc Ajax表单上传文件案例
- SpringMVC上传图片案例
- 文件上传,图片上传案例
- java-文件上传案例
- 迷你上传文件案例
- TCP文件上传案例
- 案例--文件上传总结
- 文件上传案例
- formData文件上传--案例
- 文件上传案例
- 文件上传案例
- springMVC(11) springMVC文件上传
- SpringMVC-----8、SpringMVC上传文件
- springmvc文件上传总结
- SpringMVC multipart文件上传
- SpringMVC中的文件上传
- springmvc的文件上传
- 数字三角形问题
- HttpURLConnection访问百度
- shell 脚本学习之一 ------let,echo,变量
- plsql很卡的问题
- 个人记录-LeetCode 52. N-Queens II
- springmvc 文件上传案例
- Papers-policy uncertainty & Gravity Model of Trade
- h标签本身自带间距 去除方法
- java AccessController.doPrivileged使用
- (重点复习)[LeetCode]Kth Largest Element in an Array
- 利用lvs+keepalived实现高可用负载均衡环境的部署(安装常见错误)
- spark-sql与elasticsearch整合&测试
- Radar Installation(POJ 1328)(贪心)
- CCF认证 201612-3 炉石传说