Frühling Datei-Upload - 'Anfrage teilweise, ist nicht vorhanden'
Ich versuche zu senden-POST-request an meinem controller kann aber nicht passieren, alle parameter in jeder Art, es sei denn, ich entschließe mich, JSON verwenden. Mein Ziel ist, übergeben Sie einen String und eine Datei auf meinen controller, aber ich halte immer Required request part 'xxx' is not present
Fehler.
@RestController
public class ConfigurationController {
@PostMapping(value = "/config")
public ResponseEntity<?> saveEnvironmentConfig(@RequestParam("file") MultipartFile uploadfile){
return ResponseEntity.ok().body(null);
}
}
Kann ich die Datei hier. Ebenso, wenn ich versuche:
@RestController
public class ConfigurationController {
@PostMapping(value = "/config")
public ResponseEntity<?> saveEnvironmentConfig(@RequestParam("name") String name){
return ResponseEntity.ok().body(null);
}
}
gleiche Sache, die ich nicht bekommen kann den Namen hier.
Sende ich Anfrage per Briefträger, wie Sie im folgenden screenshot:
Nur header-tag ist für die Autorisierung. Ich habe keine Content-Type-header, habe ich versucht, hinzuzufügen multipart/form-data
aber nicht helfen.
Einzige Weg, ich könnte übergeben Sie String-parameter durch hinzufügen von URL. Also Folgendes http://localhost:8080/SearchBox/admin/config?name=test
funktioniert, aber das ist nicht das, was ich will. Ich möchte String-und Datei-Parameter im Body-Teil.
Habe ich auch getestet über CURL:
curl -X POST -H "Authorization:Bearer myToken" -H "Content-Type:Multipart/form-data" http://localhost:8080/SearchBox/admin/config --data 'pwd=pwd'
curl -X POST -H "Authorization:Bearer myToken"http://localhost:8080/SearchBox/admin/config --data 'pwd=pwd'
curl -H "Authorization:Bearer myToken" -F file=@"/g123.conf" http://localhost:8080/SearchBox/admin/config
Hinweis: ich geprüft ähnliche Beiträge schon aber hat nicht geholfen
Diese, Diese, Diese
Sie müssen hinzufügen bean multipartResolver in Ihrem addConfig in Fall, dass Sie mit spring mvc. Wie das baeldung.com/spring-file-upload
InformationsquelleAutor Gokhan Celikkaya | 2017-10-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich endlich das Problem gelöst, und teilen meine Lösung, falls jemand anderes vielleicht das gleiche problem haben.
warum verwenden Sie multipartResolver() und multipartConfigElement () - Methode.
InformationsquelleAutor Gokhan Celikkaya
ändern Sie den parameter format für "Datei" aus Text-Datei aus dem drop-down-Menü und wählen Sie die Datei, die du hochladen willst
Ich versuche den gleichen Weg, aber funktioniert nicht selbe Fehlermeldung
update-der erste parameter dieser @RequestParam(value = "name") String name
Ich bereits der name geändert. Es scheint, ich Bedarf Bean-definition. Bitte siehe meine Antwort. Es ist mein problem gelöst. Danke für die Hilfe
InformationsquelleAutor baba
Ich vermute, der Hauptgrund ist @RequestParam("Datei")
es sollte @RequestBody statt.
@RequestBody @RequestParam("name") String name
hat nicht funktioniert. Wenn ich versuche@RequestBody String name
name-variable bekomme folgenden Wert:------WebKitFormBoundary6WJHhVqqZrh8qeAX Content-Disposition: form-data; name="name" test ------WebKitFormBoundary6WJHhVqqZrh8qeAX--
InformationsquelleAutor Michal Cholewiński
Hinzufügen, die Bohnen zu Config-Datei.
InformationsquelleAutor Mahendra Sri
Während dies war nicht der ursprüngliche poster das problem, wenn Sie sich dieser Frage und keine der oben genannten Lösungen gearbeitet, für Sie, überprüfen Sie Ihren Postboten, Header; wenn "Content-Type" - header gesetzt ist, kann dies verursachen die oben genannten Fehler.
Entfernen Sie "Content-Type" - header und kann das Problem beheben oben.
Sehen, diese Frage für mehr Informationen:
Postbote : Erforderlich Anforderung part 'Datei' ist nicht vorhanden
InformationsquelleAutor drew
Beachten Sie auch die Möglichkeit, Ihre Anfrage Körper nicht erreichen des Servers, wenn es über einen proxy oder einen anderen Vermittler, die möglicherweise nicht unterstützt multipart/form-data oder sogar octet-stream content-Typen. Hoffentlich, dies kann gelöst werden mit zusätzlichen Konfiguration zu arbeiten, diese Art von Anfragen. Ich kann auch empfehlen, Sie zu konfigurieren, dass ein request interceptor, so dass Sie können melden Sie Ihren Wunsch vor und nach dem controller, das könnte helfen, Sie bekommen einen Einblick in den request-Parameter, payload und Header. In meinem Fall habe ich gemerkt, dass die Größe von meinem Wunsch Körper war 0, die mir helfen zu erkennen, was war die Ursache dieses Fehlers war nicht mein spring-Konfiguration. Hier Lasse ich eine nützliche Ressource, um Ihnen zu helfen mit der logging-interceptor, die Feder aus der box. geben Sie den link-Beschreibung hier
InformationsquelleAutor darkconeja