2016-08-27 18 views
2
onChange(event) { 
    var image = event.srcElement.files; 
    console.log(image); 

マイコンソール値は、私は私のポストデータとしてサーバーに送信する必要がありますどのようなAngular2でサーバーにデータを投稿する方法は?

FileList {0: File, length: 1} 

のですか?以下のような

答えて

0

何か:

return this.http 
     .post(this.heroesUrl, JSON.stringify({name: name}), {headers: this.headers}) 
     .toPromise() 
     .then(res => res.json().data) 
     .catch(this.handleError); 

は完璧です、あなたはhttps://angular.io/docs/ts/latest/tutorial/toh-pt6.html

+0

私の場合は空のオブジェクトが送信されました – klp

+0

toPromise()は非同期オブジェクトを送信するため、データが実際に送信されるまでコードを保護する必要があります –

1

であなたが必要なすべてを持っている私はあなたがそれがavailable only of file input fieldsあるfilesプロパティのアクセスしているので、event.srcElementが実際<input type="file">であると仮定します。

Angular2 Httpサービスは現在のところストリング本体でのみ動作します。多くのことを単純化するFormDataもサポートする未解決の問題があります。

feat(http): Support many types of body on Request/Response and all ConnectionBackend implementationsを参照してください。

現在、生のXMLHttpRequestオブジェクトをNgZoneでラップして、FormDataというPOSTデータを送信することができます。詳細情報については

onChange(event) { 
    var image = event.srcElement.files[0]; 
    var reader = new FileReader(); 
    reader.onload = (evt) => { 
     // Print base64 encoded file content 
     console.log(evt.target.result); 
     // Send data to server 
     this.http.post(url, evt.target.result)... 
    } 
    reader.readAsDataURL(image); 
} 

は、以下を参照してください:

関連する問題