SpringMVC提交数据的同时上传文件
来源:互联网 发布:美利达淘宝旗舰店 编辑:程序博客网 时间:2024/06/05 04:58
1. 要点
- html页面中的表单必须是enctype=”multipart/form-data”
- 使用jquery-form的ajaxSubmit进行表单提交
- 使用SpringMVC进行处理,需要配置multipartResolver
- SpringMVC控制器中判断request是否包含文件,有文件则处理文件,没有文件则按原业务逻辑进行处理
2. 步骤
2.1 html页面
需要设置表单的enctype=”multipart/form-data”。并使用jQuery-form的ajaxSubmit提交表单。
<form id="addForm" action="<c:url value='/doAdd'/>" method="POST" enctype="multipart/form-data"> <input type="text" name="name" /> <!-- 可以是任意个文件域 --> <input type="file" name="file1"/> <input type="file" name="file2"/> <input type="file" name="file3"/> <input type="button" id="submitBtn" value="提交"/></form><!-- 引入依赖的Jquery和JQuery-Form --><script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script><script src="https://cdn.jsdelivr.net/jquery.form/4.2.1/jquery.form.min.js" integrity="sha384-tIwI8+qJdZBtYYCKwRkjxBGQVZS3gGozr3CtI+5JF/oL1JmPEHzCEnIKbDbLTCer" crossorigin="anonymous"></script><!-- 自定义JavaScript --><script type="text/javascript"> $("#submitBtn").on("click", function(){ $("#addForm").ajaxSubmit({ success : function(data){ alert(data); }, error : function(){ alert("请求错误"); } }); });</script>
2.2 SpringMVC配置
需要配置multipartResolver。
<!-- 文件上传解析器 --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" ref="maxUploadSize"></property></bean><!-- 上传文件 最大 50M --><bean id="maxUploadSize" class="java.lang.Long" > <constructor-arg index="0"> <value>52428800</value> </constructor-arg></bean>
2.3 Controller
对于控制层,如果request是MultipartHttpServletRequest类型,则说明表单中有文件,则可以对文件进行处理。如果没有上传文件,则对表单中的其它属性进行处理。
import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.multipart.MultipartHttpServletRequest;@Controllerpublic class TestFileController { @RequestMapping("/doAdd") @ResponseBody public String doAdd(@RequestParam("name") String name, HttpServletRequest request){ if (request instanceof MultipartHttpServletRequest) { MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request; // 获取上传的文件 Map<String, MultipartFile> fileMap = multipartHttpServletRequest.getFileMap(); for(Map.Entry<String, MultipartFile> entry : fileMap.entrySet()){ // 对文件进处理 System.out.println(entry.getKey() + ":" + entry.getValue().getOriginalFilename()); } } // 对name进行处理 System.out.println(name); return "ok"; }}
阅读全文
0 0
- SpringMVC提交数据的同时上传文件
- springMVC 上传文件同时传递参数
- springmvc form 提交上传文件400
- SpringMVC数据校验、文件上传
- 研究了三天的文件上传(jspsmart实现)file和text表单同时提交的问题
- 研究了三天的文件上传(jspsmart实现)file和text表单同时提交的问题
- springmvc的文件上传
- SpringMVC 的文件上传
- SpringMVC的文件上传
- SpringMVC的文件上传
- SpringMVC的文件上传
- springMVC的文件上传
- SpringMVC的文件上传
- JSPSmart实现文件上传时file和text表单同时提交的问题
- 文件上传(jspsmart实现)file和text表单同时提交的问题
- 关于使用jquery.form.js上传文件同时提交表单的方法
- okhttp文件及数据同时上传
- Springmvc提交数据的方式
- 通过学习bootstrop导航条学会修改bootstrop颜色基调
- POJ2488DFS
- vue之form提交
- 【项目记录】山东大学场馆管理系统之——首页界面设计
- C++搜索与回溯算法之红与黑
- SpringMVC提交数据的同时上传文件
- Android开发时遇到的问题
- 浅谈扩展KMP算法
- mysql 数据库,表,字段的字符编码
- 克隆虚拟机
- 在Linux CentOS 6.x上安装Python 2.7.9
- 用Navicat for Mysql导入.sql文件
- 理解同步与异步,及java中实现同步机制的方法
- NISO下的任意串口类printf函数的实现