【常见错误】org.springframework.web.multipart.MultipartException: request is not a multipart request
作者:mmseoamin日期:2023-12-25

检查请求类型和内容类型

MultipartException 错误通常发生在请求类型不是 multipart/form-data 或者内容类型不是预期的类型时。因此,要解决这个错误,需要确保请求的类型和内容类型正确。以下是一些检查步骤:

  1. 检查请求类型

确保发送到服务器的请求的 HTTP 方法为 POST,并且 Content-Type 为 multipart/form-data。可以通过浏览器开发者工具或网络监控工具来查看请求的详细信息。

  1. 检查内容类型

确保上传的文件是预期的类型,例如 image/jpeg、image/png、text/plain 等。可以在控制器方法中使用 @RequestParam 或 @RequestPart 注解来指定预期的内容类型。例如:

java@PostMapping("/upload")
public String uploadFile(@RequestParam("file") @ContentType("image/jpeg") MultipartFile file) {
// 处理文件逻辑...
return "success";
}

通过以上步骤,可以确保请求的类型和内容类型正确。

如果你在尝试上传文件时,请求没有包含正确的Content-Type(例如,Content-Type为application/json),就会抛出“Current request is not a multipart request”的错误。

解决方法:

确保在尝试上传文件时,请求包含了正确的Content-Type。以下是一个示例:

POST /upload HTTP/1.1
Host: example.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4WxjSAPAF5DzN

检查表单配置和前端代码

除了检查请求类型和内容类型外,还需要检查表单配置和前端代码是否正确。以下是一些检查步骤:

  1. 检查表单配置

确保在 HTML 表单中设置了正确的 enctype 属性为 multipart/form-data。例如:

  1. 检查前端代码

确保在前端代码中正确地选择了要上传的文件,并设置了正确的文件类型和文件大小。例如:

html

通过以上步骤,可以确保表单配置和前端代码正确。