牛骨文教育服务平台(让学习变的简单)
博文笔记

通过Ajax提交form表单来提交上传文件

创建时间:2016-12-05 投稿人: 浏览次数:20244


 Ajax 提交form方式可以将form表单序列化 然后将数据通过data提交至后台,例如:


  1. $.ajax({  
  2.      url : "http://localhost:8080/",  
  3.      type : "POST",  
  4.      data : $( "#postForm").serialize(),  
  5.      success : function(data) {  
  6.          
  7.      },  
  8.      error : function(data) {  
  9.         
  10.      }  
  11. });
但是这种方式如果表单中有需要提交的文件类型 这样则不行 后台接不到数据。

解决办法:使用 FormData。这里使用jquery 最好使用2.0版本之后 之前应该不支持。例如:

<form id="form">
   <P class="p5"><span><i>*</i>商户证书:</span>
      <input type="text" name="apiclientType" id="textfield" class="w_txt" >
      <input type="button" class="w_btn" value="上传证书" />
      <input type="file" name="fileField" class="w_file" id="fileField" size="28" onchange="document.getElementById("textfield").value=this.value" />
   </P>

</form>



var formData = new FormData(document.getElementById("form"));//表单id
$.ajax({
   url: "${ctx}/wmManage/saveWeixinConfig.do" ,
   type: "POST",
   data: formData,
   async: false,
   cache: false,
   contentType: false,
   processData: false,
   success: function (result) {
    
   }
});

附上后台数据接收:

@RequestMapping("/saveWeixinConfig")
@ResponseBody
public ResultMsg saveWeixinConfig(@RequestParam(value = "fileField",required = false)MultipartFile fileField) throws IOException {
    
    return "";
}


阅读更多
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。