0
我正在使用angular2與asp.net核心webapi。使用以下代碼發送文件信息。 IFormFile始終爲空。我在後期輸入和API方法參數中使用了相同的名稱,但仍然沒有運氣。請幫幫我。Angular2到Asp.net核心Webapi IFormFile爲空
FORMDATA
this.formData.append("file", f,f.name);
元器件方法
public UploadFiles() {
console.log("Form Data:" + this.formData);
let saved: boolean = false;
this.claimsService
.UploadFiles(this.formData)
.subscribe(data => {
saved = data;
}, error => {
console.log(error)
swal(error);
})
}
服務方法
UploadFiles(data: FormData): Observable<boolean> {
return this.ExecuteFilePost("Upload/Upload", data);
}
基本服務方法:
public ExecuteFilePost(action: string, data: FormData) {
let _body = data;
let headers = new Headers({ 'Content-Type': undefined});
let url = this._baseUrl + action;
let requestoptions: RequestOptions = new RequestOptions({
headers: headers,
});
console.log('req url:' + url);
return this.http.post(url,_body,requestoptions)
.share()
.map((res: Response) => {
if (res.status < 200 || res.status >= 300) {
throw new Error('This request has failed ' + res.status);
}
else {
return res.json();
}
});
}
的WebAPI方法
[HttpPost]
[ActionName("Upload")]
public async Task Upload(IFormFile file)
{
var uploads = Path.Combine(_environment.WebRootPath, "uploads");
// foreach (var file in files)
// {
if (file.Length > 0)
{
using (var fileStream = new FileStream(Path.Combine(uploads, file.FileName), FileMode.Create))
{
await file.CopyToAsync(fileStream);
}
}
// }
}
鉻請求屏幕 enter image description here
我能解決這個問題。我做了以下事情。 移除{ '內容 - 類型':未定義} 新增 '接受', '應用/ JSON' 而ConfigureServices-> services.AddCors(選項=> { options.AddPolicy( 「CorsPolicy」, 助洗劑=> () .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials()); }); Configure-> app.UseCors(「CorsPolicy」); –