使用restTemplate的post请求传输文件与文件数组

restTemplate传递文件数组

传递MultipartFile[]

被请求接口

 @ApiImplicitParams({
            @ApiImplicitParam(name = "fid", value = "当前表ifd", required = true, dataType = "string")
    })
    @ApiOperation(value = "图片保存", notes = "图片保存")
    @PostMapping(value = "/savePicture")
    public ResponseModel savePicture(@RequestParam("multipartFile")MultipartFile[] multipartFile, String fid) throws IOException {
        ResponseModel responseModel = new ResponseModel();
        if(multipartFile.length<=0){
            responseModel.ResMessage ="文件为空上传失败";
        }else {
            String save = tcartransferService.save(multipartFile,fid);
            responseModel.ResMessage =save;
            responseModel.ResCode=-1;
            responseModel.ResMessage = "图片保存成功!";
        }
        return responseModel;
    }

请求接口

 @ApiImplicitParams({
            @ApiImplicitParam(name = "fid", value = "当前表ifd", required = true, dataType = "string")
    })
    @ApiOperation(value = "图片保存", notes = "图片保存")
    @PostMapping(value = "/savePicture")
    public String savePicture(@RequestParam("multipartFile")MultipartFile[] multipartFile, String fid,HttpServletRequest httpServletRequest) throws IOException {

        MultiValueMap<String,Object> map = new LinkedMultiValueMap<>();
        //设置请求头
        HttpHeaders headers = new HttpHeaders();
        MediaType type = MediaType.parseMediaType("multipart/form-data");
        headers.setContentType(type);
        headers.add("token",httpServletRequest.getHeader("token"));
        List<Object> fileList = new ArrayList<>();
        for(MultipartFile multipartFiles : multipartFile) {
            ByteArrayResource byteArrayResource = new ByteArrayResource(multipartFiles.getBytes()){
                @Override
                public String getFilename() throws IllegalStateException {
                    return multipartFiles.getOriginalFilename();
                }
            };
            fileList.add(byteArrayResource);
        }
        map.put("multipartFile", fileList);
        map.add("fid", fid);
        HttpEntity<MultiValueMap<String, Object>> request =
                new HttpEntity<MultiValueMap<String, Object>>(map, headers);
        String data = restTemplate.postForObject(URL + "/tcartransfer/savePicture", request, String.class);
        return data;
    }

传递单个文件
被调用接口

 @ApiOperation(value = "质量部判定质量工单中,制造部维修中,待质量部检验, 通知要求部门-报废,ATO处置确认中",
                 notes = "质量部判定质量工单中,制造部维修中,待质量部检验, 通知要求部门-报废,ATO处置确认中")
    @ApiImplicitParams({

    })
    @RequestMapping(value = "/save", method = {RequestMethod.POST})
    public ResponseModel save(@RequestParam("multipartFile") MultipartFile multipartFile, Tmanagement tmanagement,
    String A, String B,String C,String D,String E

    ) throws IOException, ParseException {
        SimpleDateFormat date= new SimpleDateFormat("yyyy-MM-dd");
        ResponseModel responseModel = new ResponseModel();
        if(StringUtils.isNotBlank(A)){
            tmanagement.setFDeliveryTimeT(A);
        }
        if(StringUtils.isNotBlank(B)){
            tmanagement.setFDeliveryTimeTh(date.parse(B));
        }
        if(StringUtils.isNotBlank(C)){
            tmanagement.setFDeliveryTimeFour(date.parse(C));
        }
        if(StringUtils.isNotBlank(D)){
            tmanagement.setFDeliveryTimeFive(date.parse(D));
        }
        if(StringUtils.isNotBlank(E)){
            tmanagement.setFDeliveryTimeSix(date.parse(E));
        }
            String preserve = tmodelreceive.qualityDepartment(multipartFile, tmanagement);
            if("修改成功".equals(preserve)){
                responseModel.ResCode=-1;
                responseModel.ResMessage = preserve;
            }else {
                responseModel.ResMessage = preserve;
            }

        return responseModel;
    }

restTemplate调用接口传递单个文件

@ApiOperation(value = "质量部判定质量工单中,制造部维修中,待质量部检验, 通知要求部门-报废,ATO处置确认中",
            notes = "质量部判定质量工单中,制造部维修中,待质量部检验, 通知要求部门-报废,ATO处置确认中")
    @ApiImplicitParams({

    })
    @RequestMapping(value = "/save", method = {RequestMethod.POST})
    public String save(@RequestParam("multipartFile") MultipartFile multipartFile, Tmanagement tmanagement,HttpServletRequest httpServletRequest
    ) throws IOException {
        MultiValueMap<String,Object> map = new LinkedMultiValueMap<>();
        //设置请求头
        HttpHeaders headers = new HttpHeaders();
        MediaType type = MediaType.parseMediaType("multipart/form-data");
        headers.setContentType(type);
        headers.add("token",httpServletRequest.getHeader("token"));

        List<Object> fileList = new ArrayList<>();
        SimpleDateFormat ss = new SimpleDateFormat("yyyy-MM-dd");
        if (!multipartFile.isEmpty()){
            ByteArrayResource byteArrayResource = new ByteArrayResource(multipartFile.getBytes()){
                @Override
                public String getFilename() throws IllegalStateException {
                    return multipartFile.getOriginalFilename();
                }
            };
            fileList.add(byteArrayResource);
        }
        if(tmanagement.getFStatus().equals("zlbpd")){

            //质量部判定质量工单中
            map.add("FId",tmanagement.getFId());
            map.add("A",tmanagement.getFDeliveryTimeT());

        }else if(tmanagement.getFStatus().equals("zzbwx")){
            //制造部维修中
            map.add("FId",tmanagement.getFId());
            map.add("B",ss.format(tmanagement.getFDeliveryTimeTh()));
        }else if(tmanagement.getFStatus().equals("zlbjy")){
            //待质量部检验
            map.add("FId",tmanagement.getFId());
            map.add("C",ss.format(tmanagement.getFDeliveryTimeFour()));
        }else if(tmanagement.getFStatus().equals("tzxubm")){
            //通知要求部门-报废
            map.add("FId",tmanagement.getFId());
            map.add("D",ss.format(tmanagement.getFDeliveryTimeFive()));
        }else if(tmanagement.getFStatus().equals("ATOczqr")) {
            //ATO处置确认中
            map.add("FId",tmanagement.getFId());
            map.add("E",ss.format(tmanagement.getFDeliveryTimeSix()));
        }
        map.add("FStatus",tmanagement.getFStatus());
        map.put("multipartFile", fileList);
        HttpEntity<MultiValueMap<String, Object>> request =
                new HttpEntity<MultiValueMap<String, Object>>(map, headers);
        String data = restTemplate.postForObject(URL + "/tmanagement/save", request, String.class);
        return data;
    }
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用`RestTemplate`发送带有文件POST请求。以下是一个示例: ```java import org.springframework.core.io.FileSystemResource; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; import java.io.File; public class FileUploadExample { public static void main(String[] args) { String url = "http://example.com/upload"; String filePath = "/path/to/file.txt"; RestTemplate restTemplate = new RestTemplate(); // 设置请求HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.MULTIPART_FORM_DATA); // 构建请求体 MultiValueMap<String, Object> body = new LinkedMultiValueMap<>(); body.add("file", new FileSystemResource(new File(filePath))); // 构建请求实体 HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers); // 发送请求 ResponseEntity<String> response = restTemplate.postForEntity(url, requestEntity, String.class); // 处理响应 if (response.getStatusCode().is2xxSuccessful()) { System.out.println("文件上传成功"); } else { System.out.println("文件上传失败"); } } } ``` 在上述示例中,您需要设置正确的URL和文件路径。通过将文件包装在`FileSystemResource`中,并将其添加到`MultiValueMap`中,您可以将文件作为Multipart形式的请求体发送到服务器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值