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

413请求实体太大-使用Spring Boot和Rest模板

伊锦
2023-03-14

使用Spring Rest模板上传一个100 MB的文件,使用多部分post请求。

HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.MULTIPART_FORM_DATA);
    MultiValueMap<String, Object> map = new LinkedMultiValueMap<String, Object>();

    map.add("name", chunk.getFilename());
    map.add("filename", chunk.getFilename());
    map.add("flowChunkNumber", chunk.getNumber());
    map.add("flowChunkSize", chunkSize);
    map.add("flowIdentifier", chunk.getIdentifier());
    map.add("flowTotalSize", chunk.getTotalSize());
    map.add("flowCurrentChunkSize", chunk.getSize());
    map.add("file", chunk.getResource() );

    HttpEntity<MultiValueMap<String, Object>> entity = new HttpEntity<MultiValueMap<String, Object>>(map, headers);


    ResponseEntity<String> response = executeForResponse(
            baseUri().path("/api/v1/uploads/chunks")
                                        .build().toUri(), HttpMethod.POST, entity, String.class);
org.springframework.web.client.HttpClientErrorException: 413 Request Entity Too Large
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91)
    at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:614)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:570)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:545)
    at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:466)

共有1个答案

鞠泰平
2023-03-14

也许这有帮助:

SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setBufferRequestBody(false);

RestTemplate template = new RestTemplate(factory);

当通过POST或PUT发送大量数据时,建议将此属性更改为false

 类似资料:
  • 我已经用编写了一个WCF服务。NET 4.0,它托管在我的Windows 7Ultimate系统上,带有IIS 7.5。其中一个服务方法有一个'object'作为参数,我正试图发送一个包含图片的字节[]。只要这张图片的文件大小小于约48KB,一切正常。但是,如果我试图上传更大的图片,WCF服务将返回一个错误:

  • 对工作或替代解决方案有什么想法吗?

  • 我已在etc/nginx/nginx上将客户机的最大机身尺寸更改为100M。在etc/php5/fpm/php上,我已经将upload_max_文件大小更改为100M。在etc/php5/fpm/php上将ini和post_max_大小设置为100M。ini和我仍然无法让文件上传工作。 还有其他人遇到过这个问题吗?

  • 我正试图将一个保存到一个嵌套中。但是当我尝试这么做时,服务器崩溃了,这就是我在控制台上看到的问题。日志: 有一件事是JSON请求的大小是1095922字节,在Nest中有人知道怎么做吗。js是否增加有效请求的大小?谢谢

  • 我有下面的上传文件方法来上传多部分文件,我看到413请求实体太大,同时上传一个像28MB的大尺寸文件。在tomcat 9服务器配置中,我已经将设置为50MB,并且还尝试了下面链接中建议的设置。我已经在文件中添加了下面的属性。 我在下面的链接中尝试了一些建议,但仍然看到相同的错误:Spring Boot Upload Multipart 413请求实体太大