Ajax使用formData提交帶圖片上傳的表單
記錄一下今天踩過的坑。。這麼個問題居然搞了快兩個小時了。ssm框架,前臺form帶圖片上傳,因為效驗表單資料,所以不能直接submit。
formDat還是很簡單的,有很多加值得方法,後臺可以直接用物件接收。
使用ajax提交有很多種方式,說一下使用formDat,直接貼程式碼。
前端一個form表單,帶圖片
其實很簡單,只需注意幾個點。
1、用formData格式傳輸引數Controller的引數名也要和form表單name對應
2、因為我之前是用var file = $('#file').val();得到的file,後臺用MultipartFile file一直接收不到(就是這地方搞了好久)
後來慢慢調錯,發現Controller裡用String file 就能收的到,就覺得肯定是前臺傳過來的不對,然後前臺alert(file)發現是圖片路徑,不是Object物件,是一個字串
實在沒想到。。。改成這樣就好了。
直接new formData(“form...”) 好像也是傳的string型別圖片。
省略了很多.....這編輯器不好寫程式碼,複製過來又會亂。。等改善吧
反正遇到問題一步一步來,腦子蒙圈實在不知道哪有問題,看程式碼好像哪也沒有問題...這時候就要不斷調式縮小範圍,然後排除一些不可能有問題的地方,針對一些可能會有問題或者不確定有沒有問題的地方不斷測試,利用debug 和 控制檯輸出。總是能解決的。
1 2 3 4 5 6 7 8 9 10 11 |
<input type= "text" name= "userName" id= "1" >
|
js程式碼:ajax提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
|
後端程式碼:springmvc接收後端程式碼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
1 |
|
-
其實很簡單,只需注意幾個點。
1、用formData格式傳輸引數Controller的引數名也要和form表單name對應
2、因為我之前是用var file = $('#file').val();得到的file,後臺用MultipartFile file一直接收不到(就是這地方搞了好久)
後來慢慢調錯,發現Controller裡用String file 就能收的到,就覺得肯定是前臺傳過來的不對,然後前臺alert(file)發現是圖片路徑,不是Object物件,是一個字串
實在沒想到。。。改成這樣就好了。
直接new formData(“form...”) 好像也是傳的string型別圖片。
省略了很多.....這編輯器不好寫程式碼,複製過來又會亂。。等改善吧
反正遇到問題一步一步來,腦子蒙圈實在不知道哪有問題,看程式碼好像哪也沒有問題...這時候就要不斷調式縮小範圍,然後排除一些不可能有問題的地方,針對一些可能會有問題或者不確定有沒有問題的地方不斷測試,利用debug 和 控制檯輸出。總是能解決的。