【问题标题】:[org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'image' is not present][org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'image' is not present]
【发布时间】:2021-12-04 17:07:07
【问题描述】:

我尝试将具有某些属性的图像从颤振发送到 Spring Boot 端点,但 Spring Boot 根本没有收到该图像,它给了我这个错误:

Resolved [org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'image' is not present]

这是我的代码:

弹簧靴

@PostMapping("")
public ResponseEntity<UsersEntity> createNewUser(@RequestParam(value = "image") MultipartFile image, UsersEntity user) {
    UsersEntity response = userService.createUser(user, image);
    return ResponseEntity.ok(response);
}

颤动

var postUri = Uri.parse("http://localhost:8080/v1");
var request = new http.MultipartRequest("POST", postUri);
request.fields['fName'] = firstNameController.text;
request.fields['lName'] = lastNameController.text;
if(image != null) {
  request.files.add(http.MultipartFile.fromBytes(
      'image', image!, contentType: MediaType.parse('multipart/form-data')));
}

Map<String, String> headers = {
  "Access-Control-Allow-Origin": "*",
  "Access-Control-Allow-Credentials": "true",
  "Access-Control-Allow-Headers": "Origin,Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token,locale",
  "content-type": "application/json"};
request.headers.addAll(headers);

request.send().then((response) {
  if (response.statusCode == 200) {
    print("Success!");
  } else {
    print('Error!');
  }
});

我的服务与 Postman 配合得很好,知道如何解决这个问题吗?

【问题讨论】:

    标签: java spring-boot flutter dart multipart


    【解决方案1】:

    解决方案

    感谢https://github.com/flutter/flutter/issues/37311#issuecomment-516967285

    我只需添加filename,一切正常:

    request.files.add(http.MultipartFile.fromBytes(
        'image', image!, 
        contentType: MediaType.parse('multipart/form-data'), 
        filename: 'test.jpg'));
    

    【讨论】:

      【解决方案2】:
        var uri = Uri.parse('$baseUrl/services/selfemployment/check-confirmation-code');
        var request = new http.MultipartRequest("POST", uri);
      
         request.headers.addAll(baseHeader);
         request.fields['example'] = example;
         request.fields['image'] = image;
         http.Response response = await http.Response.fromStream(await request.send());
         print('Uploaded! ${response.body} ++ ${response.statusCode}');
      

      【讨论】:

        猜你喜欢
        • 2019-03-11
        • 2018-08-19
        • 1970-01-01
        • 2016-04-08
        • 2020-12-17
        • 2020-03-06
        • 2022-12-02
        • 2013-12-11
        • 1970-01-01
        相关资源
        最近更新 更多