真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

SpringCloudFeign文件傳輸-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關Spring Cloud Feign文件傳輸,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

在華州等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網站建設、網站制作 網站設計制作按需求定制設計,公司網站建設,企業(yè)網站建設,品牌網站建設,營銷型網站建設,成都外貿網站建設公司,華州網站建設費用合理。

一、配置文件解析器

服務提供者和消費者都需要配置文件解析器,這里使用 commons-fileupload 替換原有的解析器:

依賴:


  commons-fileupload
  commons-fileupload
  1.3.1

注入 bean :

@Bean(name = "multipartResolver")
public MultipartResolver mutipartResolver(){
  CommonsMultipartResolver com = new CommonsMultipartResolver();
  com.setDefaultEncoding("utf-8");
  return com;
}

程序入口中剔除原有的解析器:

@SpringBootApplication(exclude = {MultipartAutoConfiguration.class})

二、服務提供者,即接收文件一方的配置

Controller 的寫法:

@ResponseBody
@RequestMapping(value = "/upload", method = {RequestMethod.POST},
        produces = {MediaType.APPLICATION_JSON_UTF8_VALUE},
        consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public Result uploadFile(@RequestPart("file")MultipartFile file,
@RequestParam("id")Long id){
  String fileName = file.getOriginalFilename();
  String extend = FileOperateUtil.suffix(fileName);
  FileOperateUtil.copy("E:\\" + fileName, file);
  return ResultBuilder.success("ok");
}

@RequestPart 指定文件,后面的 @RequestParam 是額外參數(shù),注意額外參數(shù)不能超過url長度限制。

三、服務消費者配置

依賴:


  io.github.openfeign.form
  feign-form-spring
  3.2.2


  io.github.openfeign.form
  feign-form
  3.2.2

文件編碼配置:

import feign.codec.Encoder;
import feign.form.spring.SpringFormEncoder;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
import org.springframework.cloud.netflix.feign.support.SpringEncoder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MultipartSupportConfig{

  @Autowired
  private ObjectFactory messageConverters;

  @Bean
  public Encoder feignFormEncoder(){
    return new SpringFormEncoder(new SpringEncoder(messageConverters));
  }

}

Feign 接口定義:

@FeignClient(name = "test-upload")
public interface UploadService{

  @ResponseBody
  @RequestMapping(value = "/upload", method = {RequestMethod.POST},
      produces = {MediaType.APPLICATION_JSON_UTF8_VALUE},
      consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
  ResultuploadFile(@RequestPart("file")MultipartFile file,
@RequestParam("id")Long id);

}

與普通 Feign 接口寫法差不多,注意方法注解和參數(shù)與服務提供者的 controller 一樣。

Controller 的寫法, Controller 中接收前端傳過來的文件信息和額外參數(shù),然后通過 Feign 接口傳輸?shù)竭h端:

// 注入 feign 接口
@Autowired
private UploadService uploadService;

@RequestMapping(value = "/upload", method = RequestMethod.POST, produces = "application/json; charset=utf-8")
@ResponseBody
public Result testUpload(HttpServletRequest request, Long id){
  Result result = null;
  MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;
  Map fileMap = mRequest.getFileMap();
  for (MultipartFile mFile : fileMap.values()) {
    String fileName = mFile.getOriginalFilename();
    result = uploadService.uploadFile(mFile, id);
  }
  return result;
}

以上就是Spring Cloud Feign文件傳輸,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享名稱:SpringCloudFeign文件傳輸-創(chuàng)新互聯(lián)
轉載注明:http://weahome.cn/article/dhodso.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部