目的是实现异步上传
1.添加pom依赖
添加pom依赖,因为用的ajax,数据需要转成json的格式进行传输,所以还有加入一个JSON jar包:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
< 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里面需要加上:
1
2
3
4
5
|
< 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.前端页面上
前端页面:
1
2
3
4
5
6
7
8
|
< 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:
1
2
3
|
< 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方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<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代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
@RequestMapping ( "/method2" ) @ResponseBody @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(); } |
以上就是分享给大家的关于SpringMVC使用MultipartFile 实现异步上传方法介绍的全部内容,希望对大家有所帮助。欢迎大家浏览本站其他专题,有什么疑问或者建议可以随时留言,小编会及时回复大家的。希望大家对服务器之家网站多多支持!
原文链接:http://blog.csdn.net/foolishandstupid/article/details/52047514