美文网首页
springcloud使用feign上传和下载文件

springcloud使用feign上传和下载文件

作者: ydd7z | 来源:发表于2019-06-25 11:48 被阅读0次

    服务端controller

    @PostMapping(value = "documentConverter/word2pdf", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
        public Object word2pdf(MultipartFile file, String loginAccount, HttpServletResponse response, HttpServletRequest request) {
            ResponseEntity<byte[]> entity = null;
            
            return entity;
        }
    

    调用端feignclient接口

    @FeignClient(value = "asset-doconverter", configuration = AssetDoconverterService.MultipartSupportConfig.class)
    public interface AssetDoconverterService {
    
        @PostMapping(value = "documentConverter/word2pdf", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
        Response word2pdf(@RequestPart MultipartFile file, @RequestParam("loginAccount") String loginAccount);
    
        @Configuration
        class MultipartSupportConfig {
            @Autowired
            private ObjectFactory<HttpMessageConverters> messageConverters;
    
            // feign日志
    //      @Bean
    //      public feign.Logger.Level multipartLoggerLevel() {
    //          return feign.Logger.Level.FULL;
    //      }
    
            @Bean
            @Primary
            @Scope("prototype")
            public Encoder feignFormEncoder() {
                return new SpringFormEncoder(new SpringEncoder(messageConverters));
            }
        }
    }
    

    调用端使用:
    把文件转为MultipartFile

        private MultipartFile multipartFileFromInputStream(InputStream inputStream, String fileName) throws IOException {
            FileItemFactory factory = new DiskFileItemFactory();
            FileItem fileItem = factory.createItem("file", null, true, fileName);
            IOUtils.copy(inputStream, fileItem.getOutputStream());
            
            return new CommonsMultipartFile(fileItem);
        }
    

    相关文章

      网友评论

          本文标题:springcloud使用feign上传和下载文件

          本文链接:https://www.haomeiwen.com/subject/ieltcctx.html