spring-projects / spring-boot

Spring Boot
https://spring.io/projects/spring-boot
Apache License 2.0
75.01k stars 40.65k forks source link

MultipartFile is Null in @ModelAttribute with Spring Boot 3.3.4 but Works in 3.2.4 #42883

Closed kkong101 closed 1 hour ago

kkong101 commented 1 hour ago

Title: MultipartFile is Null in @ModelAttribute with Spring Boot 3.3.4 but Works in 3.2.4

Description:

When upgrading from Spring Boot version 3.2.4 to 3.3.4, the MultipartFile parameter in the controller method becomes null. This issue does not occur in version 3.2.4, where the file is correctly received. There are no restrictions on file size or other related configurations.

Steps to Reproduce

  1. Controller Setup:

    @PostMapping("/users")
    fun insertTryOnFace(
        @ModelAttribute imageFile: MultipartFile,
        @ModelAttribute gender: Gender,
    ) {
        // Implementation
    }
  2. Send a POST Request:

    • Endpoint: /users
    • Method: POST
    • Content-Type: multipart/form-data
    • Parameters:
      • imageFile: [Attach a file]
      • gender: [Provide appropriate value]
  3. Observe the Behavior:

    • Spring Boot 3.3.4: imageFile is null.
    • Spring Boot 3.2.4: imageFile is correctly received.

Expected Behavior The MultipartFile should be correctly populated with the uploaded file data regardless of the Spring Boot version, provided there are no size or configuration restrictions.

Actual Behavior In Spring Boot 3.3.4, the imageFile parameter is null when handling the POST request, whereas it works as expected in 3.2.4.

Additional Information

Request Looking for assistance or a fix to ensure that MultipartFile is correctly populated in Spring Boot 3.3.4 when using @ModelAttribute.

wilkinsona commented 1 hour ago

Your previous issue was intentionally moved from Spring Boot to Spring Framework as that's what @bclozel believes that the problem lies. Closing in favor of https://github.com/spring-projects/spring-framework/issues/33791.