1. 程式人生 > 實用技巧 >Feign傳輸Multipartfile檔案的正確方式,Current request is not a multipart request報錯解決

Feign傳輸Multipartfile檔案的正確方式,Current request is not a multipart request報錯解決

前言

最近公司有個需求 在前端上傳 ppt/pdf 等檔案到後臺 經過解析轉換成圖片後 再Feign 呼叫檔案服務 上傳 到伺服器

1、FileFeignApi 的介面是這樣的...

@ApiOperation(value = "上傳 ")
@PostMapping("/upload")
String uploadFile(@RequestParam(required = true,name = "fileType") @ApiParam(required = true, value = "上傳檔案的型別") Integer fileType, @RequestParam(required = true
,name = "file") MultipartFile file);

卻發現老是報如下異常

org.springframework.web.multipart.MultipartException:Current request is not a multipart request.......

經過一番研究終於發現問題了,原來檔案流要用@RequestPart註解傳參,並且 資料傳輸格式 content-type 為【multipart/form-data】,所以正確寫法如下:

@ApiOperation(value = "上傳 ")
@PostMapping(value = "/upload",consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
String uploadFile(@RequestParam(required 
= true,name = "fileType") @ApiParam(required = true, value = "上傳檔案的型別") Integer fileType, @RequestPart(required = true,name = "file") MultipartFile file);