700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > spring(@RequestPart)同时上传表单数据和文件

spring(@RequestPart)同时上传表单数据和文件

时间:2019-07-11 14:46:44

相关推荐

spring(@RequestPart)同时上传表单数据和文件

由于文件上传与普通字段上传的请求头设置不一样,之前都是文件和普通数据分开上传进行处理,这样感觉很不优雅。

后来学到spring找到一种方式可以实现文件与JSON数据同时上传的方法,通过注解@RequestPart来实现,接下来分享给大家。

一、环境配置

1、导入依赖jar包

在pom.xml文件中导入依赖

<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.5</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.2</version></dependency>

2、配置文件上传解析器

在springmvc.xml中配置

<!--处理器映射器,处理器适配器--><mvc:annotation-driven/><!--文件上传解析器--><bean id="multipartResolver" class="org.springframework.monsMultipartResolver"><property name="maxUploadSize" value="10000000"/></bean>

二、实现代码

1、前端

var formData = new FormData();// file 为想要上传的文件formData.append("file", $("#goods_img_input")[0].files[0]);//goodInfo 里面即为想要传到后端的json数据var goodInfo = JSON.stringify({"goods_id":parseInt($('#goods_id').text()),"name": $('#name').val(),"price": $('#price').val(),"inventory":$('#inventory').val(),"details": $('#details').val()})formData.append('goods', new Blob([goodInfo],{type: "application/json"}));//发送ajax请求$.ajax({url: "/goods/addGoods",type: "post",//忽略contentTypecontentType: false,//取消序列换 formData本来就是序列化好的processData: false,dataType: "json",data: formData,success: function (res) {if (res>0){alert("修改成功!");window.location.href = "/goods/findAll/1";} else {alert("修改失败,请联系系统管理员!");}}});

2、后端

@PostMapping("/updateGoods")@ResponseBodypublic void updateGoods(@RequestPart("goods") Goods good,@RequestPart("file") MultipartFile file) {System.out.println("good"+good);System.out.println("file"+file);}

这样就完成了文件与JSON数据同时上传了

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。