这是关于 Angular 4 和 5 的更新答案。TransformRequest和angular.identity已被取消。我还包括了在一个请求中结合文件和JSON数据的能力。
Angular 5 解决方案:
import {HttpClient} from '@angular/common/http';
uploadFileToUrl(files, restObj, uploadUrl): Promise<any> {
const options = {} as any;
const formData = new FormData();
for (const file of files) {
formData.append(file.name, file)
}
Object.keys(restObj).forEach(key => {
formData.append(key, restObj[key]);
});
return this.httpClient.post(uploadUrl, formData, options)
.toPromise()
.catch((e) => {
});
}
Angular 4 解决方案:
import {Http, RequestOptions} from '@angular/http';
uploadFileToUrl(files, restObj, uploadUrl): Promise<any> {
const options = new RequestOptions();
const formData = new FormData();
for (const file of files) {
formData.append(file.name, file)
}
Object.keys(restObj).forEach(key => {
formData.append(key, restObj[key]);
});
return this.http.post(uploadUrl, formData, options)
.toPromise()
.catch((e) => {
});
}
transformRequest
部分。谢谢! - Steve Danner