SpringCloud + Feign + MultipartFile 上传文件

请求流程:A、B两个服务,A服务接收文件上传请求并通过B服务的Feign接口调用B服务透传文件数据,B服务接收文件内部处理逻辑;

一、B服务

接收文件接口:

    /**
     * 文件上传
     *
     * @param id id
     * @param file 文件信息
     */
    @PostMapping(value = "/upload/{id}", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public void upload(@PathVariable("id") String id, @RequestPart("file") MultipartFile file) {
        // 文件处理逻辑
    }

consumes: 指定处理请求的提交内容类型(Content-Type) 为  multipart/form-data;

@RequestPart用于将multipart/form-data类型数据映射到控制器处理方法的参数中。除了@RequestPart注解外,@RequestParam同样可以用于此类操作。但在我调试过程中使用RequestParam会报错,拿不到文件数据,所以此处还是使用的 @RequestPart;

二、B服务的Feign接口:

    /**
     * 文件上传
     *
     * @param id id
     * @param file 文件信息
     */
    @PostMapping(value = "/upload/{id}", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    void upload(@PathVariable("id") String id, @RequestPart("file") MultipartFile file);

三、A服务

    /**
     * 文件上传
     *
     * @param id id
     * @param file 文件信息 
     */
    @PostMapping("/upload/{id}")
    public void upload(@PathVariable("id") String id, @RequestParam("file") MultipartFile file) {
        // 调用B的Feign接口
        client.upload(id, file);
       
    }

猜你喜欢

转载自blog.csdn.net/sxg0205/article/details/125296497
今日推荐