栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Springboot 服务间文件传输

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Springboot 服务间文件传输

Springboot 服务间文件传输
  • 简介
    • 上传文件
    • 下载文件

简介

我们在开发过程中经常会遇到前端上传文件到服务A,服务A再把文件发送到服务B;或者前端发送请求到服务A下载文件,然后服务A从服务B处下载文件。下面文档简单介绍下我自己的实现方式。

上传文件
  1. 首先我们在服务A编写上传文件的接口。
@PostMapping("/import")
public CommonResult import(MultipartHttpServletRequest request) {
	MultipartFile file = request.getFile("upload");
	if (file == null || file.isEmpty()) {
		return CommonResult.failed("Please select import file!");
	}
}
  1. 我们得把文件发送到服务B。CommonResult 是自定义的通用返回对象。restTemplate.postForEntity是org.springframework下spring-web中提供的方法
private String sendPost(File file) throws Exception {
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.MULTIPART_FORM_DATA);
        MultiValueMap map = new linkedMultiValueMap<>();
        FileSystemResource resource = new FileSystemResource(file);
        map.add("upload", resource);

        String urlCom = url;//这里是服务B的接口地址

        // 组装请求体
        HttpEntity requestEntity = new HttpEntity<>(map, headers);
        ResponseEntity commonResultResponseEntity = restTemplate.postForEntity(urlCom, requestEntity, CommonResult.class);
        if (commonResultResponseEntity.getBody().getCode() == 200) {
            file.deleteOnExit();
            String content = commonResultResponseEntity.getBody().getData().toString();
            return content;
        }
        return null;
    }
  1. 服务B中接口。
@PostMapping("/CustomBroker")
    public CommonResult CustomBroker(MultipartHttpServletRequest request) {
        MultipartFile file = request.getFile("upload");
        return CommonResult.success(true);
    }

CommonResult.java

public class CommonResult {
    
    private long code;
    
    private String message;
    
    private T data;

    protected CommonResult() {
    }

    protected CommonResult(long code, String message, T data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }

    
    public static  CommonResult success(T data) {
        return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data);
    }

    
    public static  CommonResult success(T data, String message) {
        return new CommonResult(ResultCode.SUCCESS.getCode(), message, data);
    }

    
    public static  CommonResult failed(IErrorCode errorCode) {
        return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null);
    }

    
    public static  CommonResult failed(IErrorCode errorCode,String message) {
        return new CommonResult(errorCode.getCode(), message, null);
    }

    
    public static  CommonResult failed(String message) {
        return new CommonResult(ResultCode.FAILED.getCode(), message, null);
    }

    
    public static  CommonResult failed() {
        return failed(ResultCode.FAILED);
    }

    
    public static  CommonResult validateFailed() {
        return failed(ResultCode.VALIDATE_FAILED);
    }

    
    public static  CommonResult validateFailed(String message) {
        return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null);
    }

    
    public static  CommonResult unauthorized(T data) {
        return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data);
    }

    
    public static  CommonResult forbidden(T data) {
        return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data);
    }

    public long getCode() {
        return code;
    }

    public void setCode(long code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }
}
下载文件

下载文件跟上传文件类似。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/643985.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号