但要在form表单中上传文件时,我们使用 SpringBoot 可以减少我们的配置流程。而在这里配置只需要配置成这样就好
public String upload(
@RequestPart("wallpaperInputFile") MultipartFile wallpaperInputFile,
@RequestPart("photos") MultipartFile[] photos) throws IOException {}我们直接使用参数接收,在视图部分用file属性的input标签发送请求即可。 但是,有时候我们会遇到511报错?亦可以说是: Current request is not a multipart request 下图这个报错:

这是为什么?
在发送带文件的请求时,请求头的信息应该是multipart/form-data。 出现这样的报错,多半是前端没有默认请求头。 而发掘请求的相关参数,也确实可以看到请求头是不符合文件上传要求的。

既然了解了bug从何而来,那么解决思路就清晰了,说到底不就是请求头不规范嘛。
在视图的form表单标签上,加上限定请求头的信息。

也就是:enctype=”multipart/form-data” 该属性就可以限定发起请求时的请求头
但如果这样还不能解决Bug…那接下来处理控制器部分
实际上,@xxxMapping 注解是有规定请求头的参数的,我们只需设定这个参数即可。

Consumes 属性,也可以用来限定请求头信息,后面的常量就是请求头的信息。

点进常量一看就可以发现SpringBoot已经给我们封装好了。直接使用即可
当视图和控制器部分都追加了请求头的限定信息,那自然bug就完成了。

如图可见,请求状态码正常,请求头信息已经更改。