当前位置: 首页 > 知识库问答 >
问题:

所需的请求部分“文件”不存在]springboot客户端

杜苏燕
2023-03-14

我在客户端中有以下代码:

          RestTemplate restTemplate = new RestTemplate();
          File file = new File("C:\\temp\\aadocejem.doc");
          MultiValueMap<String, Object> map = new LinkedMultiValueMap<String, Object>();

          map.add("file", file);


          String result = restTemplate.postForObject(url+"/doc_file", map, String.class);

这个代码就是你所说的上面的代码:

 @PostMapping("/doc_file")
    public ResponseEntity<File> docFileV1(
        @RequestParam("file") MultipartFile originalDocFile) {

        return ResponseEntity.ok(docFileService.processDocFile(originalDocFile));

    }

它在服务器上给我的错误:已解决[org.springframework.web.multipart.support.MissingServletRequestPartException:所需的请求部分“file”不存在]

它在客户端给我的错误:org.springframework.web.client.HttpClientErrorException$BadRequest: 400:[{"time戳":"2020-04-23T10:55:32.258 0000","status": 400,"错误":"错误请求","消息":"必需的请求部分'文件'不存在","跟踪":"org.springframework.web.multipart.support.MissingServlet...(5758字节)]

共有1个答案

罗绪
2023-03-14

这不适用于postForObject。

改用postForEntity:

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART__FORM__DATA);

MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("file", new FileSystemResource(file));

HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers);

RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.postForEntity(url+"/doc_file", requestEntity, String.class);
 类似资料:
  • 我有一个执行文件上传的控制器,我正在尝试从另一个服务向控制器endpoint发布请求。 从我调用上述endpoint的位置发送代码 我得到以下错误,不知道原因: 已经四处寻找了一段时间,没有解决方案。

  • 我正在尝试将图像作为广告中的字符串字段上传,但当将文件添加到正文时,我遇到了这个错误:“异常”:“org.springframework.web.multipart.support.MissingServletRequest estPartException”,“消息”:“所需的请求部分'file'不存在”。我在这里寻找有关此问题的答案,但没有任何帮助。我将很高兴得到任何帮助。 我的控制器: 我的

  • 我正在开发一个文件上传控制器,目前在Postman中测试时出现以下错误。 目前我的控制器非常简单,但首先我需要克服这个问题。 我已经查看了[此处]给出的答案(上传文件springboot必需的请求部分“file”不存在“上传文件springboot必需的请求部分文件不存在”)! 但不幸的是,这里的建议并没有解决我的问题 如果您能帮助解决此错误,我们将不胜感激 这是我的控制器:

  • 我试图使用Angular 4.0和SpringBoot应用程序上传一个json文件。我已经检查并尝试了Stackoverflow的其他解决方案,但我无法找出确切的问题是什么。 我收到400 BAD Request Error消息,其中包含消息:不存在所需的请求部分“文件”。 我的RestController看起来像这样(出于测试目的),但不幸的是什么也没发生。 我在应用程序配置文件中添加了以下内容

  • 我一直在看这个,但似乎我的问题在别处。我试图上传一个文件。当前定义为: 上传过程如下: 而这是Spring REST终结点: 问题是,Spring抛出了一个异常,告诉我参数不存在: 这是请求信息: 我怎样才能使这个文件上传工作?

  • 我试图上传大文件使用Spring和普通话MultipartResolver(与此相关主题非常相似的东西 上传一个小文件(几Kb)的结果如下: 这是我的UploadController.java"/上传"方法代码: 我的表单代码: 以及注释bean定义: 和应用。特性: 我在表单输入中有一个正确的属性名“file”和值,我还在注释中编写了一个MediaType,但它仍然无法工作。另外,我注意到,当我