Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
升级到Spring5中断了RestTemplate多部分文件上载_Spring_Upload_Resttemplate_Multipart_Httpentity - Fatal编程技术网

升级到Spring5中断了RestTemplate多部分文件上载

升级到Spring5中断了RestTemplate多部分文件上载,spring,upload,resttemplate,multipart,httpentity,Spring,Upload,Resttemplate,Multipart,Httpentity,我从Spring4.3.16升级到Spring5.0.7。当尝试使用restTemplate上传文件时,我开始收到一个“400-错误请求””。在搞乱行为之后,我注意到的唯一区别是从交换调用中删除requestEntity,错误(错误请求)消失了,但是它失败了,因为不存在要上载的文件 任何帮助都将不胜感激 客户: public <T> ResponseEntity<T> uploadMultipartFile(String requestParamName, byt

我从Spring4.3.16升级到Spring5.0.7。当尝试使用restTemplate上传文件时,我开始收到一个“400-错误请求””。在搞乱行为之后,我注意到的唯一区别是从交换调用中删除requestEntity,错误(错误请求)消失了,但是它失败了,因为不存在要上载的文件

任何帮助都将不胜感激

客户:

    public <T> ResponseEntity<T> uploadMultipartFile(String requestParamName, byte[] byteArray, String fileName,
        Class<T> responseType) {

    ByteArrayResource byteArrayAsResource = new ByteArrayResource(byteArray) {
        @Override
        public String getFilename() {
            return fileName;
        }
    };

    MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
    map.add(requestParamName, byteArrayAsResource);

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

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

    return getRestTemplate().exchange(buildUriWithVariables(new HashMap<>()), HttpMethod.POST, requestEntity, responseType);
}
看起来Apache正在抱怨请求主体:

[Wed Jul 18 11:02:29.705758 2018][:错误][pid 1313:tid 140177850750720][client]ModSecurity:使用拒绝访问 代码400(第2阶段)。需要将“eq 0”与“REQBODY_ERROR”匹配。 [文件“/etc/modsecurity/modsecurity.conf”][line“54”][id“200001”] [msg”无法分析请求正文。“][data”多部分:无效 C-T中的边界(字符)。“][严重性”严重性][主机名 “”][uri/“不间断/文档上载/多线程加载”] [唯一_id“w09whx8aaaaaaauhs7iaaabi”]

@RequestMapping("/multipleUpload")
public ModelAndView multipleUpload(HttpServletRequest request, HttpServletResponse response,
        @RequestParam(value = "files", required = false) MultipartFile[] files,
        @ModelAttribute("document") Document document,
        BindingResult result) {}