onChange(event) {
var image = event.srcElement.files;
console.log(image);
我的控制台值是
FileList {0: File, length: 1}
我应该将哪些内容作为发布数据发送到服务器?
答案 0 :(得分:1)
我认为event.srcElement
实际上是<input type="file">
,因为您正在访问files
属性available only of file input fields。
Angular2 Http
服务仅适用于现在的字符串主体。还有一个开放的问题也支持FormData
,这将简化很多事情。
参见feat(http): Support many types of body on Request/Response and all ConnectionBackend implementations。
现在,您可以使用XMLHttpRequest
包裹的原始NgZone
对象将POST数据作为FormData
发送。
然而,可能更简单的解决方案是将文件作为base64编码的字符串发送:
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);
}
有关详细信息,请参阅:
答案 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
拥有所需的一切