RestTemplate如何转发MultipartFile呢?
下文笔者讲述RestTemplate转换MultipartFile文件的方法及示例分享
RestTemplate发送文件的方法
1.定义一个MultiValueMap对象 2.将文件流放入到 MultiValueMap 对象中 3.设置头文件 headsers.setContentType(MediaType.MULTIPART_FORM_DATA) 4.使用 restTemplate.postForObject 发送文件 即可实现restTemplate发送文件例:RestTemplate发送MultipartFile示例
Result result=new Result(true); String api = releaseUrl + "/ImportExcelData";//远程接口 ByteArrayResource fileAsResource = new ByteArrayResource(multipartFile.getBytes()) { @Override public String getFilename() { return multipartFile.getOriginalFilename(); } @Override public long contentLength() { return multipartFile.getSize(); } }; MultiValueMap<String, Object> multipartRequest = new LinkedMultiValueMap<>(); multipartRequest.add("files", fileAsResource);//注意此处定义的"files"名称需与接口参数名称一致,否则无法拿到数据 HttpHeaders headers = new HttpHeaders(); headsers.setContentType(MediaType.MULTIPART_FORM_DATA); HttpEntity<MultiValueMap<String, Object>> files = new HttpEntity(multipartRequest, headers); result=restTemplate.postForObject(api, files, Result.class);//接口调用 //远程接口 @PostMapping("/ImportExcelData") public Result ImportExcelData(@RequestParam list<MultipartFile> files){ if (files.size()==1) { return service.ImportExcelData(files.get(0)); }else { return new Result(false,"请上传单个Excel文件"); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。