1. 程式人生 > >SpringBoot+Ajax檔案上傳+FormData表單提交

SpringBoot+Ajax檔案上傳+FormData表單提交

需求

前端:
html定義好form表單的輸入資訊(text+file)標籤
js通過Ajax非同步提交表單中的內容。
後端:
通過介面接收表單中的資料(String+MultipartFile)

實現

HTML部分 :html定義好form表單的輸入資訊(text+file)標籤

//定義好id,ajax會用到
 <form id="form-add">
    //單選項 (解釋:name要與介面的引數名對應起來,value是對應值)
    <input type="radio" name="imageNameIndex"  value="1"> 一號位
    <input type
=
"radio" name="imageNameIndex" value="2"> 二號位 <input type="radio" name="imageNameIndex" value="3"> 二號位 //文字 (解釋:name要與介面的引數名對應起來) <input type="text" name="url"> //檔案 (解釋:name要與介面的引數名對應起來) <input type="file" name="file"> //提交 (解釋:這個按鈕的唯一作用就是觸發提交的js方法) <button type
=
"button" onclick="submitFunction()">提交</button> </form>

JS部分:首先你得先引入JQuery。


function submitFunction() {
    //這裡唯一需要注意的就是這個form-add的id
    var formData = new FormData($("#form-add")[0]);
    $.ajax({
        //介面地址
        url: '/submit' ,
        type: 'POST',
        data: formData,
        async: false
, cache: false, contentType: false, processData: false, success: function (data) { //成功的回撥 if(data.code == 300){ } }, error: function (returndata) { //請求異常的回撥 // modals.warn("網路訪問失敗,請稍後重試!"); } }); }

後端Controller部分

    @RequestMapping(value = "/submit", method = RequestMethod.POST)
    public BaseBody submit(String imageNameIndex, String url, MultipartFile file)
            throws Exception {

        //這裡就可以獲取裡面的上傳過來的資料了

        //做一些存庫操作,以及返回的資料

    }