spring boot作为后端接收前端上传文件遇到的问题

注:仅作为自己学习遇到的一点小问题,记录一下过程

一、环境说明

spring-boot版本:2.1.4.RELEASE

JDK:1.8

二、问题描述

1、在使用RequestParam请求时,一直抛出异常:Current request is not a multipart request

@RequestParam("file") MultipartFile file

2、在去掉RequestParam,file一直为null, 无法接收上传的文件

三、排查过程

通过在网上寻找一些博客,比如:

//排除原有的Multipart配置 @EnableAutoConfiguration(exclude = {MultipartAutoConfiguration.class}) public class Application extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }

问题还是一样没有解决。

后面在通过查找注解时发现有个@RequestPart(这个注解自己之前一直没有使用过),了解了一下

1.@RequestPart这个注解用在multipart/form-data表单提交请求的方法上。 2.支持的请求方法的方式MultipartFile,属于Spring的MultipartResolver类。这个请求是通过http协议传输的。 3.@RequestParam也同样支持multipart/form-data请求。 4.他们最大的不同是,当请求方法的请求参数类型不再是String类型的时候。 5.@RequestParam适用于name-valueString类型的请求域,@RequestPart适用于复杂的请求域(像JSON,XML)。

上述了解引用权威分析@RequestParam和@RequestPart 的区别(官方文档)-阿里云开发者社区

将代码改成

(@RequestPart MultipartFile file)

就可正常接收上传的文件。

如有错误之处,请指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值