Ho un controller come questo e voglio inviare un modulo con il caricamento del file così come alcuni dati come l'etichetta come mostrato di seguito. Anche io voglio farlo in bu usando @RequestBody in modo che io possa usare l'annotazione @Valid sul wrapper dato che verranno aggiunte più variabili.Spring Controller @RequestBody con upload di file è possibile?
public @ResponseBody WebResponse<Boolean> updateEUSettings(
final Locale locale,
@Validated @ModelAttribute final EUPSettingsWrapper endUserPortalSettingsWrapper) {
}
e la mia fascia è
public class EUPSettingsWrapper {
private String label;
private MultipartFile logo;
// getter , setters..etc...
}
ma vorrei convertirlo in un @RequestBody da ModelAttrbutes.
il modo in cui sto provando è di avere il caricamento di file separato come parametro di richiesta come questo
public @ResponseBody WebResponse<Boolean> updateEUSettings(
final Locale locale,
@Validated @RequestBody final EUPSettingsWrapper endUserPortalSettingsWrapper,
@RequestParam(value = "file1", required = true) final MultipartFile logo) {
endUserPortalSettingsWrapper.setLogo(logo);
// ...
}
nel mio MVC finto io pongo
getMockMvc().perform(fileUpload(uri).file(logo)
.accept(MediaType.APPLICATION_JSON)
.content(JSONUtils.toJSON(wrapper))
.contentType(MediaType.MULTIPART_FORM_DATA))
.andExpect(status().isOk());
ma sto ottenendo un errore come questo che dice
org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'multipart/form-data' not supported
qualcuno ha una buona idea di come possono essere utilizzati i caricamenti di file Multipart th @RequestBody. Qualcosa che sto facendo male sopra?
grazie salvato un sacco di sforzi .. – pratikabu