2
respostas

Spring boot MultiPartFile not supported error [ RESOLVIDO]

@RequestMapping(value = "/customer",method = RequestMethod.POST)
    public ResponseEntity<?> create(@RequestBody CustomerDTO dto,
                                    @RequestPart("file") MultipartFile file) {return null}

Boa noite meus caros , me deparei com um problema que nao estou conseguindo seguir , em uma mesma request estou receber um DTO e um arquivo vindo de um formulário de um outro sistema .

Porém estou me deparando com o seguinte problema :

{
  "timestamp": 1584672400223,
  "status": 415,
  "error": "Unsupported Media Type",
  "message": "Content type 'multipart/form-data;boundary=----WebKitFormBoundaryON5jkllWaRkORZ76;charset=UTF-8' not supported",
  "trace": "org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'multipart/form-data;boundary=----"
}

Alguem ai ja teve esse problema , ou tem ideia de alguma solução ? nao chega nem no debug !

2 respostas

Foi resolvido tratando da seguinte forma , no mesmo dia que publiquei ja resolvi , mas agora que tive tempo estou colocando a solução caso alguém queira.

//o Receptor , Tratei o MultiPartFile como um array , sendo assim posso receber quanto tipos de arquivos eu quiser e trato do lado do receive.

public ResponseEntity createCustomerStep4(@RequestParam MultipartFile file[], @RequestParam String customerJson) {}

//O envio , utilizando spring boot com thymeleaf

@PostMapping(value = "/customer", consumes = "multipart/form-data") public ResponseEntity<?> create(@RequestParam MultipartFile file[], @RequestParam String userDto) {}

//authorization

private HttpEntity<MultiValueMap<String, Object>> getMultiValueMapHttpEntity(CustomerDTO customerDTO) throws JsonProcessingException {

    final HttpHeaders headers = new HttpHeaders();
    headers.set("Authorization", "Bearer " + "token");
    headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
    MultiValueMap<String, String> multiValueMap = new LinkedMultiValueMap<>();
    MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
    multiValueMap.add("Content-Type", "multipart/form-data");
    headers.addAll(multiValueMap);
    ObjectMapper objectMapper = new ObjectMapper();
    String jsonInString = objectMapper.writeValueAsString(customerDTO);
    params.add("customerJson", jsonInString);
    final HttpEntity<MultiValueMap<String, Object>> requestEntity =
            new HttpEntity<>(new LinkedMultiValueMap<String, Object>(), headers);
    requestEntity.getBody().addAll(params);
    return requestEntity;
}

thanks !

O post foi fechado por inatividade. Para continuar o assunto, recomendamos criar um novo tópico. Bons Estudos!