【发布时间】:2015-09-06 12:04:44
【问题描述】:
我正在使用Angular、TypeScript 将文件连同 JSON 数据一起发送到服务器。
下面是我的代码:
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
});
}
}
如何将formData 转换为字符串并将其发送到服务器?我记得在AngularJS (v1) 中你会使用transformRequest。
【问题讨论】:
-
this.http.post 行之前的数据不能转换吗? http 是一个 observable 并带有选项,尝试搜索源您可能会找到一个示例,github.com/angular/angular/blob/…
-
你在这方面有什么进展吗?
-
GitHub 上有一个待处理的功能请求github.com/angular/angular/issues/2803
-
看这里,我打了半天解决了 2017.8.25,stackoverflow.com/a/45879409/2803344
标签: angular typescript file-upload angular2-http