前端使用FormData对象拼接需要传递到后台的数据,并且使用formData.get()可以得到数据,说明数据已被放到formData对象中,
但是后台使用request.getParameter()来获取时得到的值为null.
1 var formData = new FormData(); 2 formData.append('shopImg', shopImg); 3 formData.append('shopStr', JSON.stringify(shop)); 4 var kaptchaActual = $('#inputKaptcha').val(); 5 if(!kaptchaActual){ 6 $.toast("请输入验证码"); 7 return; 8 } 9 formData.append('inputKaptcha',kaptchaActual); 10 console.log(formData.get("inputKaptcha")); //可以得到值,说明已被安排上了 11 // 使用Ajax进行表单的提交 12 $.ajax({ 13 url : registerShopUrl, 14 type : 'POST', 15 data : formData, 16 contentType : false, 17 processData : false, 18 cache : false, 19 success : function(data) { 20 if (data.success) { 21 $.toast("提交成功"); 22 } else { 23 $.toast("提交失败!" + data.errMsg); 24 } 25 $('#kaptcha_img').click(); 26 } 27 }) 28 });
这种情况下,要再引入两个包
1 <dependency> 2 <groupId>commons-fileupload</groupId> 3 <artifactId>commons-fileupload</artifactId> 4 <version>1.2.1</version> 5 </dependency> 6 7 <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> 8 <dependency> 9 <groupId>commons-io</groupId> 10 <artifactId>commons-io</artifactId> 11 <version>2.4</version> 12 </dependency>
这两个包是在springmvc上传时要用到的,还要再进行注册
1 <bean id="multipartResolver" 2 class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 3 <!-- 上传文件大小上限,单位为字节(10MB) --> 4 <property name="maxUploadSize"> 5 <value>10485760</value> 6 </property> 7 <!-- 请求的编码格式,必须和jSP的pageEncoding属性一致,以便正确读取表单的内容,默认为ISO-8859-1 --> 8 <property name="defaultEncoding"> 9 <value>UTF-8</value> 10 </property> 11 </bean>
关于SpringMVC实现文件上传下载具体可参见:
https://www.cnblogs.com/WJ-163/p/6269409.html