2017-10-04 1 views
2

Ich versuche, eine POST-Anfrage an meinen Controller zu senden, kann aber keinen Parameter übergeben, es sei denn, ich entscheide mich für JSON. Mein Ziel ist es, einen String und eine Datei an meinen Controller zu übergeben, aber ich bekomme immer Required request part 'xxx' is not present Fehler.Spring File Upload - 'Erforderlicher Anforderungsteil ist nicht vorhanden'

@RestController 
public class ConfigurationController { 
    @PostMapping(value = "/config") 
    public ResponseEntity<?> saveEnvironmentConfig(@RequestParam("file") MultipartFile uploadfile){ 
     return ResponseEntity.ok().body(null); 
    } 
} 

Ich kann keine Datei hier haben. In ähnlicher Weise, wenn ich versuche:

@RestController 
public class ConfigurationController { 
    @PostMapping(value = "/config") 
    public ResponseEntity<?> saveEnvironmentConfig(@RequestParam("name") String name){ 
     return ResponseEntity.ok().body(null); 
    } 
} 

gleiche Sache, ich kann hier keinen Namen bekommen.

I Anfrage per Postbote schicke wie in folgenden Screenshot gegeben:

Postman Request

Postman Request 2

Der einzige Header-Tag für die Zulassung ist. Ich habe keinen Content-Type-Header, ich habe versucht, multipart/form-data hinzuzufügen, hat aber nicht geholfen.

Nur ich könnte String-Parameter übergeben, indem Sie URL hinzufügen. So funktioniert http://localhost:8080/SearchBox/admin/config?name=test funktioniert aber das ist nicht was ich will. Ich möchte String und Datei-Parameter in Körperteil.

ich auch über CURL getestet:

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 [email protected]"/g123.conf" http://localhost:8080/SearchBox/admin/config 

Hinweis: ich bereits ähnliche Beiträge überprüft, aber nicht half This, This, This

Antwort

3

Ich löste schließlich das Problem und meine Lösung, falls jemand teilen sonst vor dem gleichen Problem kann.

@RestController 
@RequestMapping("/") 
public class ConfigurationController { 

    @Bean 
    public MultipartConfigElement multipartConfigElement() { 
     return new MultipartConfigElement(""); 
    } 

    @Bean 
    public MultipartResolver multipartResolver() { 
     org.springframework.web.multipart.commons.CommonsMultipartResolver multipartResolver = new org.springframework.web.multipart.commons.CommonsMultipartResolver(); 
     multipartResolver.setMaxUploadSize(1000000); 
     return multipartResolver; 
    } 
    @PostMapping(value = "/config", consumes = "multipart/form-data") 
    public ResponseEntity<?> saveEnvironmentConfig(@RequestParam("password") String password, @RequestParam("file") MultipartFile submissions) 
      throws AdminAuthenticationException, ConfigurationException { 
     return ResponseEntity.ok().body(null); 
    } 
} 
2

Ich vermute, dass Hauptgrund @RequestParam ist (“ Datei ") sollte stattdessen @RequestBody sein.

+0

'@RequestBody @RequestParam (" Name ") String name' hat nicht funktioniert. Wenn ich versuche, '@RequestBody String name' Name Variable erhalten folgenden Wert: ' ------ WebKitFormBoundary6WJHhVqqZrh8qeAX Content-Disposition: Form-Daten; name = "name" Test ------ WebKitFormBoundary6WJHhVqqZrh8qeAX-- ' –

1
@RequestMapping(value = "/upload", method = RequestMethod.POST) 
public ResponseEntity<?> upload(@RequestParam(value = "name") String 
name,@RequestParam(value = "file") MultipartFile file){ 
    // TODO check file is not null and save 
    return new ResponseEntity<>(HttpStatus.valueOf(200));; 
} 

enter image description here

+0

Same :( { "message": "Erforderlich String-Parameter 'title' ist nicht vorhanden", "Status": 400“ Fehler ": [" Erforderlich Zeichenfolge Parameter 'Titel' ist nicht vorhanden "]} –

+0

ändern Sie das Parameterformat für" Datei "von Text in Datei aus Dropdown-Menü und wählen Sie die Datei, die Sie hochladen wollten – baba

+0

Ich versuche es auf die gleiche Weise aber funktioniert nicht gleiche Fehler –

Verwandte Themen