原文链接:zjblog
记录一下今天踩过的坑。。这么个问题居然搞了快两个小时了。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 |
|
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 和 控制台输出。总是能解决的。