SpringCloud下通過feign進行文件上傳


在springclod項目下,通過feign的內部調用進行文件上傳

和一般的feign調用會有一點點區別,主要是服務提供者(feign接口)的定義有些變化

Feign服務提供者

@FeignClient(
    value = AppConstant.APPLICATION_RESOURCE_NAME,
    fallback = IOssClientFallback.class
)
public interface IOssClient {
    String API_PREFIX = "/client";
    String PUT_FILE = API_PREFIX + "/put-file";

    /**
     * 上傳文件
     *
     * @param file   資源編號
     * @param tenantId
     * @return R
     */
    @PostMapping(value = PUT_FILE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    @SneakyThrows
    R<Object> putFile(@RequestPart("file") MultipartFile file, @RequestParam("tenantId") String tenantId);

}

主要是@RequestMapping里面的consumes屬性還有@RequestPart("file")

至於@RequestParam和@RequestPart的區別如下(摘抄至網絡)

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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM