1、第三接口接收File对象文件
2、接收MultipartFile 本地存储
@PostMapping(value = "/chunkUpload", produces = "application/json")
public Object chunkUpload(HttpServletRequest request, MultipartFile file) throws IOException {
String paramJson = HttpRequestUtils.getParam(request);
ReqChunkUploadDto dto = JSON.parseObject(paramJson,ReqChunkUploadDto.class);
if(dto.getIdentifier() == null){
return Result.fail(BizCode.WRONGFUL_PARAM.code(), "文件上传上传凭证不能为空");
}
File f = null;
try {
String[] fileNames = dto.getFileName().split("\\.");
if(fileNames.length < 2){
return null;
}
// 创建临时文件
f = File.createTempFile("jg-", "."+fileNames[fileNames.length-1]);
file.transferTo(f);
}catch (Exception e){
log.error("文件上传异常",e);
}
dto.setFile(f);
return Result.success(bimFileUploadService.chunkUpload(dto));
}
3、通过MultiValueMap和 FileSystemResource去包装
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
FileSystemResource resource = new FileSystemResource(dto.getFile());
params.add("file",resource);
HttpEntity requestEntity = new HttpEntity<>(params, headers)
restTemplate.exchange(url, method, requestEntity, String.class);