1. 程式人生 > 實用技巧 >通過 Feign 進行檔案上傳

通過 Feign 進行檔案上傳

轉載請註明出處:

  專案為spring cloud 專案,專案中對各部分能力業務進行了拆分,將公共的服務能力放在一個模組當中,通過

Feign 的方式 進行呼叫,feign 呼叫的本質還是http內部通訊請求,實現模組之間的呼叫。

  通過feign進行檔案上傳時,feign 側示例程式碼如下:

@FeignClient
public interface UploadClient {
  @PostMapping(value = "/uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
  String uploadFile(@RequestPart(value 
= "file") MultipartFile file, @RequestParam String uploadPath); }

檔案屬性需要使用@RequestPart 屬性,而且在請求中新增consumes = MediaType.MULTIPART_FORM_DATA_VALUE ,

檔案表單上傳請求通常使用的ContentType為multipart/form-data ,通過以上直接呼叫feign的方式即可實現feign 檔案上傳

以下為 @RequestPart 與 @RequestParam 的區別:

1. @RequestPart這個註解用在multipart/form-data表單提交請求的方法上。

2. 支援的請求方法的方式MultipartFile,屬於Spring的MultipartResolver類。這個請求是通過http協議傳輸的。
3. @RequestParam也同樣支援multipart/form-data請求。
4. 他們最大的不同是,當請求方法的請求引數型別不再是String型別的時候。
5. @RequestParam適用於name-valueString型別的請求域,@RequestPart適用於複雜的請求域(像JSON,XML)。