ajax表單提交上傳文件restful微服務提交請求


1、上傳文件表單提交的js寫法

      這里只討論ajax的提交方式,表單提交我用了一個jquery-form.js來做表單的POST提交(get方法是不支持表單的提交的),

      form表單的類型需要寫成enctype="multipart/form-data",不寫的話就會默認為application/x-www-form-urlencoded這樣后端會報錯,不多說直接上代碼,js代碼為:

var option = {
url : "http://localhost:8080/api/v1/workflow/generateRequestParamByFile",
type : 'POST',
dataType : 'json',
headers : {
"ClientCallMode" : "ajax"
}, //添加請求頭部
success : function(data) {
document.getElementById("resultArea").value=JSON.stringify(data);
document.getElementById("returnArea").style.display="";
},
error : function(data) {
alert(JSON.stringify(data) + "--上傳失敗,請刷新后重試");
}
};
$("#submitForm").ajaxSubmit(option);
return false; //最好返回false,因為如果按鈕類型是submit,則表單自己又會提交一次;返回false阻止表單再次提交

2、后端微服務的注解使用

后台restful微服務需要可以簡單點配置,不需要配置consumes參數,如果要返回json數據直接配置produces為apllication/json接口(因為前段一般都是處理js數據因此我們也一般返回json)

一、一種方法是配置的請求注解為public Boolean fileUpload(@ModelAttribute("submitForm") FormRequest formRequest)  這樣我們直接將form表單數據轉換成對象,對象中文件的屬性可以設置成MultipartFile 。這樣我們直接可以用這個文件對象獲取輸入流,進行后面的操作。

二、第二種方法是配置的請求注解為 public @ResponseBody Boolean fileUpload(MultipartFile file ,String userId) 此配置可以直接進行文件上傳,當然這種方式比較適合參數比較少的請求,,對於參數比較多的請求還是建議封裝成對象的形式進行處理;


免責聲明!

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



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