Ich habe einen Controller wie folgt und ich möchte ein Formular mit Dateiupload sowie einige Formulardaten wie Etikett wie unten gezeigt senden. Ich möchte das auch mit @RequestBody tun, damit ich die @Valid Annotation auf dem Wrapper verwenden kann, da mehr Variablen hinzugefügt werden.Spring Controller @RequestBody mit Datei-Upload ist es möglich?
public @ResponseBody WebResponse<Boolean> updateEUSettings(
final Locale locale,
@Validated @ModelAttribute final EUPSettingsWrapper endUserPortalSettingsWrapper) {
}
und meine Wrapper ist
public class EUPSettingsWrapper {
private String label;
private MultipartFile logo;
// getter , setters..etc...
}
, aber ich würde es in von ModelAttrbutes zu einem @RequestBody konvertieren möchten.
die Art, wie ich versucht habe ist, indem Sie die Datei-Upload als Anfrageparameter wie diese
public @ResponseBody WebResponse<Boolean> updateEUSettings(
final Locale locale,
@Validated @RequestBody final EUPSettingsWrapper endUserPortalSettingsWrapper,
@RequestParam(value = "file1", required = true) final MultipartFile logo) {
endUserPortalSettingsWrapper.setLogo(logo);
// ...
}
in meinem Mock mvc getrennt mit i
getMockMvc().perform(fileUpload(uri).file(logo)
.accept(MediaType.APPLICATION_JSON)
.content(JSONUtils.toJSON(wrapper))
.contentType(MediaType.MULTIPART_FORM_DATA))
.andExpect(status().isOk());
setze aber ich erhalte eine Fehlermeldung wie diese was sagt
org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'multipart/form-data' not supported
Jeder hat eine gute Idee, wie Multipart Dateiuploads wi verwendet werden können th @RequestBody. Was mache ich oben falsch?
danke gespeichert viel Aufwand .. – pratikabu