Datei-Upload mit Angular2 zur REST-API
erzeit arbeite ich an einer Spring-REST-API mit einer in Angular 2 codierten Schnittstell
Mein Problem ist, dass ich mit Angular 2 keine Datei hochladen kann.
Meine Webressourcen in Java sind:
@RequestMapping(method = RequestMethod.POST, value = "/upload")
public String handleFileUpload(@RequestParam MultipartFile file) {
//Dosomething
}
Und es funktioniert perfekt, wenn ich es über eine URL-Anfrage mit Auth-Header usw. aufrufe. (Mit der Advanced Rest Client-Erweiterung für Chrome.)
Proof: (in diesem Fall funktioniert alles einwandfrei)
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
Spring-Konfigurationsdatei und die Pom-Abhängigkeit
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2</version>
</dependency>
ABER wenn ich versuche, dasselbe mit einem Webformular zu tun:
<input type="file" #files (change)="change(files)"/>
<pre>{{fileContents$|async}}</pre>
Mit der (Änderungs-) Methode:
change(file) {
let formData = new FormData();
formData.append("file", file);
console.log(formData);
let headers = new Headers({
'Authorization': 'Bearer ' + this.token,
'Content-Type': 'multipart/form-data'
});
this.http.post(this.url, formData, {headers}).map(res => res.json()).subscribe((data) => console.log(data));
/*
Observable.fromPromise(fetch(this.url,
{method: 'post', body: formData},
{headers: this.headers}
)).subscribe(()=>console.log('done'));
*/
}
Mein Webdienst gibt mir einen Fehler 500 zurück, mit dem in Tomcat-Protokollen:http: //pastebin.com/PGdcFUQ
Ich habe das @ ausprobie'Content-Type': undefined
Methode auch, aber ohne Erfolg (der Webdienst gibt mir in diesem Fall einen 415-Fehler zurück.
Kann mir jemand helfen, herauszufinden, wo das Problem liegt?
Problem gelöst, ich aktualisiere diese Frage später mit meinem Code :) aber schau dir den Plunker an, er funktioniert perfekt. Vielen Dank