轉載請注明出處:
項目為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)。