通過Ajax提交form表單來提交上傳文件



 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 "";
}



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM