Как отобразить запрос, содержащий Файл и данные в службе Rest, используя @RestController с HttpEntity <class>в качестве входного параметра - PullRequest
0 голосов
/ 29 августа 2018

Пожалуйста, смотрите код ниже, где я хочу отправить запрос, содержащий файл и другие данные JSON, которые будут в одном классе Java:

Мой класс (подержанный ломбок):

@Data
public class CustomFileUploadSearch {

    private Long selectedId;
    private MultipartFile file; 
}

@RequestMapping(method = RequestMethod.POST, path = "/rest/GIER/testFileData", 
    consumes = {"multipart/form-data"}, produces = { MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity bulkActivateInactivate(HttpEntity<CustomFileUploadSearch> entity, HttpServletRequest request) {

        CustomFileUploadSearch cfuSearch = entity.getBody();
}

Я не могу использовать этот метод.

Пожалуйста, помогите мне, чтобы это заняло 1 день.

Заранее спасибо.

@RestController
public class ChassisInventoryRest {

    @SuppressWarnings("rawtypes")
    @RequestMapping(method = RequestMethod.POST, path = "/rest/GIER/testFileData", 
    consumes = {"multipart/form-data"}, produces = { MediaType.APPLICATION_JSON_VALUE })
    public ResponseEntity bulkActivateInactivate(HttpEntity<CustomFileUploadSearch> entity, HttpServletRequest request) {

        CustomFileUploadSearch cfuSearch = entity.getBody();
        System.out.println("cfuSearch.getSelectedId():"+cfuSearch.getSelectedId());
        System.out.println("cfuSearch.getFile():"+cfuSearch.getFile());

        return new ResponseEntity<Map<String, Object>>( new HashMap<String, Object>(), HttpStatus.OK);
    }
}

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Вы можете явно получить MultipartFile в качестве входного параметра запроса в RestController.

@RestController
public class ChassisInventoryRest {
 @PostMapping(path = "/rest/GIER/testFileData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
 public ResponseEntity bulkActivateInactivate(@RequestParam MultipartFile file, @RequestParam Long selectedId) {
    //parameterized constructor
    CustomFileUploadSearch cfuSearch = new CustomFileUploadSearch(selectedId, file);

    return new ResponseEntity<Map<String, Object>>( new HashMap<String, Object>(), HttpStatus.OK);
    }
}
0 голосов
/ 29 августа 2018
public class CustomFileUploadSearch {

   private Long selectedId;
    private MultipartFile file;

    public Long getSelectedId() {
        return selectedId;
    }
    public void setSelectedId(Long selectedId) {
        this.selectedId = selectedId;
    }
    public MultipartFile getFile() {
        return file;
    }
    public void setFile(MultipartFile file) {
        this.file = file;
    } 
}

@RequestMapping(method = RequestMethod.POST)
public ResponseEntity bulkActivateInactivate(CustomFileUploadSearch  entity, HttpServletRequest request) {

        System.out.println(entity.getSelectedId());
        System.out.println(entity.getFile());


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...