使用@RequestPart同時接收表單數據和MultipartFile數據

項目中有使用restTemplate轉發表單數據和上傳文件,之前都是將表單數據json傳到後臺進行序列化,這樣一來代碼就顯得十分不美觀,後來發現使用@RequestPart註解可直接進行數據綁定,十分優雅地解決了這個問題。


客戶端代碼:

public void save(FormData formData, MultipartFile[] applyFiles) {
        MultiValueMap<String, Object> multiValueMap = new LinkedMultiValueMap<>();
        multiValueMap.add("formData", formData);
        List<Resource> tmpResource = new ArrayList<>();
        for (MultipartFile multipartFile : applyFiles) {
            if (multipartFile != null) {
                tmpResource.add(multipartFile.getResource());
            }
        }
        multiValueMap.addAll("applyFile", tmpResource);
        restTemplate.postForObject("localhost:8080/demo/matter/save", multiValueMap, Void.class);
}

服務端代碼:

@PostMapping("/save")
    public void save(@RequestPart(required = false) FormData formData,
                     @RequestParam(value="applyFile", required=false) MultipartFile[] applyFiles) {
    。。。
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章