org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'multipart/form-data;bounda

今天在编写SpringBoot 文件上传遇到这样的错误:org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'multipart/form-data;bounda

特此记录下:

错误的Controller 代码:

@ApiOperation(httpMethod = "POST", value = "文件块上传")
	@RequestMapping(value = "/upload", method = { RequestMethod.POST })
	@ResponseBody
	public Result upload(
			@RequestBody @ApiParam(name = "文件块对象", value = "表单对象")ChunkInfoModel         
            entity, HttpServletRequest request, HttpServletResponse response) {

			UploadFileCallback callback = new UploadFileCallback(entity, "upload", config.getLocation());
			Future<Result> result = this.uploadExecutor.submit(callback);
			try {
				return result.get();
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				log.error(e.getMessage());
				e.printStackTrace();
			} catch (ExecutionException e) {
				// TODO Auto-generated catch block
				log.error(e.getMessage());
				e.printStackTrace();
			}
		return Result.ok("文件块上传成功");
	}

正确的Controoler 代码:

@ApiOperation(httpMethod = "POST", value = "文件块上传")
	@RequestMapping(value = "/upload", method = { RequestMethod.POST })
	@ResponseBody
	public Result upload(
			ChunkInfoModel entity,
			HttpServletRequest request, HttpServletResponse response) {

			UploadFileCallback callback = new UploadFileCallback(entity, "upload", config.getLocation());
			Future<Result> result = this.uploadExecutor.submit(callback);
			try {
				return result.get();
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				log.error(e.getMessage());
				e.printStackTrace();
			} catch (ExecutionException e) {
				// TODO Auto-generated catch block
				log.error(e.getMessage());
				e.printStackTrace();
			}
		return Result.ok("文件块上传成功");
	}

 原因:首先你在  multipart/form-data 就不能使用 @RequestBody

 

@RequestBody 的用法:

 1. 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;

  2. 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。

springboot  默认配置核心代码,涉及请求request数据转换配置:

 

总结:RequestBody 支持的请求方式和内容类型

请求方式内容方式支持/不支持
POST/GETapplication/x-www-form-urlencoded支持@RequestParam、支持@RequestBody
POST/GET multipart/form-data不支持@RequestBody
POST/GETapplication/json、application/xml支持@RequestBody
PUTapplication/x-www-form-urlencoded支持@RequestParam、支持@RequestBody
PUT multipart/form-data不支持@RequestBody
PUTapplication/json、application/xml支持@RequestBody
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值