SpringMVC使用MultipartFile 实现异步上传文件
2016-07-27 17:18
721 查看
目的是实现异步上传
需要加入的JS:
JS方法:
1.添加pom依赖
添加pom依赖,因为用的ajax,数据需要转成json的格式进行传输,所以还有加入一个JSON jar包:<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.37</version> </dependency>
2.修改配置文件
applicationContext.xml里面需要加上:<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8"></property> <property name="maxUploadSize" value="5400000"></property> </bean>
3.前端页面上
前端页面:<form id="uploadForm" name="uploadForm" enctype="multipart/form-data"> <input name="messageContent" value="多个参数的情况下"> <label>文件</label> <input type="file" name="file"> <button class="btn" type="button" id="doSave">提交</button> </form> </body> </html>
需要加入的JS:
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script> <script type="text/javascript" src="js/jquery-ui.min.js"></script> <script type="text/javascript" src="js/jquery.form.js"></script>
JS方法:
<script> $(function() { $("#doSave") .click( function() { $("#uploadForm") .ajaxSubmit( { type : 'post', url : "/tmpInfo/method2.do", //data: //注意只要是写在表单里面的,都不需要加这个属性。在controller中可以根据@RequestParam String str获取到属性值。 contentType : "application/x-www-form-urlencoded; charset=utf-8", success: function(data) { //接受到的data还只是一个字符串,需要转成json对象 var obj = JSON.parse(data); if(obj.flag==true){ alert("上传成功"); }else{ alert("error"); } }, error: function (data)//服务器响应失败处理函数 { alert("出错"); } }); }); });
controller代码:
@RequestMapping("/method2") @ResponseBody public String method2(@RequestParam MultipartFile file, @RequestParam String messageContent ) { //多个参数的话只要多个@RequestParam即可,注意参数名要和表单里面的属性名一致 JSONObject json =new JSONObject(); System.out.println(messageContent); String orgiginalFileName = ""; int m =new Random().nextInt(100)+10; System.out.println("m="+m); String path="D:/"+m+"b.txt"; try { File newFile =new File(path); file.transferTo(newFile); String fileName = file.getName(); InputStream inputStream = file.getInputStream(); String content = file.getContentType(); orgiginalFileName = file.getOriginalFilename(); System.out.println("fileName: "+fileName+", inputStream: "+ inputStream +"\r\n content: "+content+", orgiginalFileName: ="+ orgiginalFileName +"\r\n projectName: "); } catch (IOException e) { e.printStackTrace(); } json.put("flag", true); json.put("message", "success"); System.out.println(json.toJSONString()); return json.toJSONString(); }
相关文章推荐
- ruby实现的一个异步文件下载HttpServer实例
- C#异步绑定数据实现方法
- 科学知识:同步、异步、阻塞和非阻塞区别
- 探讨Ajax中同步与异步之间的区别
- C#中异步回调函数用法实例
- C#实现异步GET的方法
- C#异步下载文件
- C#异步执行任务的方法
- 简单实现C#异步操作
- 使用Promise解决多层异步调用的简单学习心得
- 深入理解JavaScript编程中的同步与异步机制
- Jquery异步提交表单代码分享
- JQuery异步获取返回值中文乱码的解决方法
- jQuery通过deferred对象管理ajax异步
- Highcharts使用简例及异步动态读取数据
- Ajax异步上传文件实例代码分享
- Node.js 的异步 IO 性能探讨
- Ajax异步(请求)提交类 支持跨域
- Ajax实现异步用户名验证功能
- Ajax简单的异步交互及Ajax原生编写