2016-06-14 29 views
1

Momentan spielen Sie mit Angular 2 RC herum.Datei hochladen Angular 2

Gibt es Anleitungen/Artikel, die mir helfen, das Hochladen einer Datei über einen REST-Aufruf an das Backend zu verstehen?

Ich bin durch this gegangen, aber es fühlt sich an, als sollte es eine bequemere Art, es zu tun sein.

Antwort

3

Wenn Sie auf RC2 warten, haben Sie die Möglichkeit, andere Nutzdaten als Text zu verwenden.

Zum Beispiel Blob diejenigen:

var headers = new Headers({'Content-Type': 'text/css'}); 
var body = new Blob(['body { color: red; }']); 

return this.http.post('/url', body, { headers }); 

Arraybuffer diejenigen:

var headers = new Headers({'Content-Type': 'text/css'}); 

var body = new ArrayBuffer(512); 
var longInt8View = new Uint8Array(body); 
for (var i = 0; i < longInt8View.length; i++) { 
    longInt8View[i] = i % 255; 
} 

return this.http.post('/url', body, { headers }); 

FormData diejenigen:

var body = new FormData(); 
body.append('test1', 'val1'); 
body.append('test2', 123456); 
var blob = new Blob(['body { color: red; }'], {type: 'text/css'}); 
body.append("userfile", blob); 

return this.http.post('/url', body, { headers }); 

Es wäre viel einfacher, binäre Inhalte für HTTP-Anfragen zu behandeln. Gerade jetzt ist es schwierig (und hacky), da Angular2 nur Text-Payloads als Eingabe akzeptiert.

+0

Danke für die Info @Thierry, ich habe nach dem Status dieser Anfrage Methoden gesucht, habe es nicht geschafft, es zu finden (; – Sasxa

+1

@Sasxa du bist willkommen! RC2 wurde gerade veröffentlicht, so dass Sie dies finden sollten in es ;-) –

+0

Yup, ich sah Release Notes heute Morgen (: – Sasxa