您当前的位置:首页 > 互联网教程

如何实现Multipartfile 的异步请求

发布时间:2025-05-19 11:02:44    发布人:远客网络

如何实现Multipartfile 的异步请求

一、如何实现Multipartfile 的异步请求

添加pom依赖,因为用的ajax,数据需要转成json的格式进行传输,所以还有加入一个JSON jar包:

<groupId>commons-fileupload</groupId>

<artifactId>commons-fileupload</artifactId>

<version>1.3.1</version>

<groupId>commons-logging</groupId>

<artifactId>commons-logging</artifactId>

<version>1.2</version>

<groupId>com.alibaba</groupId>

<artifactId>fastjson</artifactId>

<version>1.1.37</version>

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>

<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>

<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>

//data://注意只要是写在表单里面的,都不需要加这个属性。在controller中可以根据@RequestParam String str获取到属性值。

contentType:"application/x-www-form-urlencoded; charset=utf-8",

//接受到的data还只是一个字符串,需要转成json对象

error: function(data)//服务器响应失败处理函数

public String method2(@RequestParam MultipartFile file,

@RequestParam String messageContent){

//多个参数的话只要多个@RequestParam即可,注意参数名要和表单里面的属性名一致

JSONObject json=new JSONObject();

System.out.println(messageContent);

int m=new Random().nextInt(100)+10;

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:");

json.put("message","success");

System.out.println(json.toJSONString());

二、ajax请求数据并分页怎么做

1、ajax请求后台拿到json类型的数据后,可以在它的success回调方法中进行动态分页,也就是表格重绘,此时,我们需要得到的数据包括:查询得到的数据、数据总条数、总页数、当前页数,其中前三条可在后台获取,对于当前页数,需要从前端获取点击页数再通过请求传递给后台,后台做完相应处理后再传回给前端。

2、var schoolid=$("#schoolid option:selected").text();

3、var apptype=$("#apptype option:selected").text();

4、var appname=$("#appname").val();

5、data:{'schoolid':schoolid,'apptype':apptype,'page':page,'appname':appname},

6、var str="<tr><th class='w20'>应用编号</th>"

7、+"<th class='w15'>学校名称</th>"

8、+"<th class='w30'>应用名称</th>"

9、+"<th class='w25'>应用分类</th>"

10、+"<th class='w10'>应用类型</th></tr>";

11、for(var i=0;i<data.resultList.length;i++){

12、str+="<trοnclick='showAppDetail(this);'><td>"+data.resultList[i].appid+"</td><td>"

13、+data.resultList[i].schoolid+"</td><td>"+data.resultList[i].appname+"</td><td>"

14、+data.resultList[i].app_departid+"</td><td>"+data.resultList[i].apptype+"</td></tr>";

15、$("#table").html(str);//重绘table

16、var pageNum= data.pageNum;//获取得到的数据页数

17、var curPage= data.curPage;//获取当前页

18、/*若页数大于1则添加上一页、下一页链接*/

19、str="<ul><li><a href='javascript:void(0);οnclick=preEvent();' id='pre' data-num='1'>上一页</a></li>"

20、for(var i=0;i<data.pageNum;i++){

21、str+="<li><a href='javascript:void(0);οnclick=getData("+(parseInt(i)+1)+");' data-type='num'>"+(parseInt(i)+1)+"</a></li>";

22、if(str.indexOf("上一页")>-1){

23、str+="<li><a href='javascript:void(0);οnclick=nextEvent();' id='next' data-num='1'>下一页</a></li>"

24、+"<span>共<span id='pageNum'>"+pageNum+"</span>页</span></ul>";

25、str+="<span>共<span id='pageNum'>"+pageNum+"</span>页</span></ul>";

26、//把当前页码存到上一页、下一页的data-num属性中,这样可以在点击上一页或者下一页时知道应该跳到哪页

27、$("#pre").attr("data-num",curPage);

28、$("#next").attr("data-num",curPage);

29、var curPage=$("#pre").attr("data-num");

30、$(this).attr('disabled',"true");

31、var curPage=$("#next").attr("data-num");

32、var pageNum=$("#pageNum").text();

33、$(this).attr('disabled',"true");

34、注意:标签的href属性,如href=”javascript:void(0);οnclick=getData();”

35、要让原来的点击事件失去响应,重新给它定义点击事件,要给它加上javascript:void(0);这句话,若写的是href=”#”的话,点击默认会跳到页面顶部。

36、另外,ajax请求数据无刷新翻页是异步请求,所以标签的点击事件要写在它的属性里,如上例,若写在js当中,会造成

37、页面还没加载出来,事件就已经触发,导致没有任何响应。