Ich verwende Angular, TypeScript, um eine Datei zusammen mit JSON-Daten an einen Server zu senden.Angular - POST hochgeladene Datei
Unten ist mein Code:
import {Component, View, NgFor, FORM_DIRECTIVES, FormBuilder, ControlGroup} from 'angular2/angular2';
import {Http, Response, Headers} from 'http/http';
@Component({ selector: 'file-upload' })
@View({
directives: [FORM_DIRECTIVES],
template: `
<h3>File Upload</h3>
<div>
Select file:
<input type="file" (change)="changeListener($event)">
</div>
`
})
export class FileUploadCmp {
public file: File;
public url: string;
headers: Headers;
constructor(public http: Http) {
console.log('file upload Initialized');
//set the header as multipart
this.headers = new Headers();
this.headers.set('Content-Type', 'multipart/form-data');
this.url = 'http://localhost:8080/test';
}
//onChange file listener
changeListener($event): void {
this.postFile($event.target);
}
//send post file to server
postFile(inputValue: any): void {
var formData = new FormData();
formData.append("name", "Name");
formData.append("file", inputValue.files[0]);
this.http.post(this.url +,
formData ,
{
headers: this.headers
});
}
}
Wie kann ich die formData
in String umwandeln und sie an den Server schicken? Ich erinnere mich an AngularJS (v1) Sie würden transformRequest
verwenden.
kann nicht die Daten, bevor this.http.post Linie transformiert werden? http ist eine beobachtbare und nimmt Optionen, versuchen Sie, die Quelle suchen, finden Sie ein Beispiel, https: // github.com/angular/eckig/blob/8ed22ce6e7ce0e00c12b036d02627424c6b4ff35/modules/angular2/src/http/http.ts –
Hattest du Fortschritte dabei? – Canastro
Es gibt eine ausstehende Feature-Anfrage auf GitHub https://github.com/angular/angular/issues/2803 – martin