SpringBoot接受文件和对象

SpringBoot接受文件和对象:

使用场景:某个接口,‘需要同时接受文件和实体'也就是参数

这个时候,前端就不能'json'格式传送数据了,要用到'multipart/form-data;'这种格式传送数据。

那么,这个时候,后端应该怎样接受这个参数和文件呢?

1 .接受' HttpServletRequest',自己处理request (不推荐)

2 •接受实体,将文件放到对象属性中(推荐)

3 .接受参数,将文件放到接受参数中

这种方法适合接受单个文件参数,多参数还是建议用对象接受,方便扩展。

4.一个坑,使用第二种方法的时候,一定不要加'@RequestBody 加了这个注解,就会报如下错误。.

所以,接受知,不要使用'@RequestBody '注解。但是'©Validated'注解(校验参数的注解)是可以使用的。

,这个时候,前端就不能json格式传送数据了,要用到multipart/form・data;这种格式传送数据。 二,那么,这个时候,后端应该怎样接受这个参数和文件呢?

1 .接受HttpServletRequest,自己处理request (不推荐)

@PostMapping(value = "/upload")

@ResponseBody

public String handleFilellpload(HttpServletRequest request) {

MultipartHttpServletRequest params=((MultipartHttpServletRequest) request); //获取文件

List<MultipartFile> files = ((MultipartHttpServletRequest) request) .getFiles(“file”)

St ring name=params. getParameter(^Viame"); 原文链接:https://biog.csdn.net/weixin_4i854206/artick

 

 

2•接受实体,将文件放到对象属性中(推荐)

1 在这里不能加@RequestBody或@RequestParam,目前暂不清楚原因。

 

public class UserFileReq {

//参数

private String username;

//文件

private MultipartFile file;

//省略get/set

@PostMapping(value = "/upload")

@ResponseBody

public String handleFilellpload(UserFileReq req) {

//文件和参数都在实体中了

}

你的浏览器目前处于缩放状态,页面可能会出现错 位现象,建议100%大小显示。

3.接受参数,将文件放到接受参数中

这种方法适合接受单个文件参数,多参数还是建议用对象接受,方便扩展

 

@PostMapping(value = "/upload")

@ResponseBody

public String handleFilellpload(MultipartFile file) { }

4.一个坑,使用第二种方法的时候,一定不要加@RequestBody,加了这个注解,就会报如下错误。

 

"timestamp": 1571196217195,

"status": 415,

"error": "Unsupported Media Type",

"exception": "org.springframework.web.HttpMediaTypeNotSupportedException",

"message": "Content type 1multipart^form-data;boundary=20OOYeFBpE "

"path": "file/upload" 

}

 

原文链接:https://blog.csdn.net/weixin_41854206/artick

作者主页:https://blog.csdn. net/weixin_41854206weixi r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

所以,接受文件,不要使用@RequestBody注解

但是@Validated注解(校验参数的注解)是可以使用的。

版权声明:本文为CSDN博主FLitongZeroJ的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/LitongZero/article/details/102583W 你的浏览器目前处于缩放状态,页面可能会岀现错x

posted @ 2022-05-29 23:29  江南小镇的一缕阳光  阅读(2330)  评论(0)    收藏  举报