使用WebApi上传Angular2文件

使用WebApi上传Angular2文件,angular,asp.net-web-api,Angular,Asp.net Web Api,Angular2我想上传文件并将文件保存在服务器文件夹中,但我无法获取HttpContext.Current.Request.Files,它总是空的。我的代码 -UploadService.ts postFileUpLoad(url: string, data: any): any { let headers = new Headers(); if (localStorage.getItem('localStorage') != null) { headers.

Angular2我想上传文件并将文件保存在服务器文件夹中,但我无法获取HttpContext.Current.Request.Files,它总是空的。我的代码
-UploadService.ts

 postFileUpLoad(url: string, data: any): any {
    let headers = new Headers();
    if (localStorage.getItem('localStorage') != null) {
        headers.append('Content-Type', 'multipart/form-data')
        headers.append('Authorization', "Bearer " + JSON.parse(localStorage.getItem('localStorage')).idToken);
    }
    this.slimLoadingBarService.startLoading();
    return this.http.post(url, data, {
        headers: headers
    })
        .toPromise()
        .then(this.extractData)
        .catch(this.handleError);
}
-上传文件组件

onChange(event) {
let fileList: FileList = event.target.files;
    if (fileList.length > 0) {
        let file: File = fileList[0];
        let formData: FormData = new FormData();
        formData.append('uploadFile', file, file.name);
       this.httpService.postFileUpLoad('http://localhost:3000/api/uploadFile', formData);
    }}

-HTML

<input type="file" id="btnUpload" value="Upload" name="FileUpLoad" (change)="onChange($event)" class="upload" />

请帮帮我,非常感谢

更改API方法,如下所示:

[HttpPost]
[Route("uploadFile")]
public HttpResponseMessage UploadJsonFile()
{
    HttpResponseMessage response = new HttpResponseMessage();
    var abc = Request.Properties.Values;
    var httpRequest = HttpContext.Current.Request;
    var fileCount = httpRequest.Files.Count;
    if (httpRequest.Files.Count > 0)
    {
        for (int i=0; i< fileCount ; i++)
        {
            var postedFile = httpRequest.Files[i];
            var filePath = HttpContext.Current.Server.MapPath("~/UploadFile/" + postedFile.FileName);
            postedFile.SaveAs(filePath);
        }
    }
    return response;
}
[HttpPost]
[路由(“上传文件”)]
公共HttpResponseMessageUploadJsonfile()
{
HttpResponseMessage response=新的HttpResponseMessage();
var abc=Request.Properties.Values;
var httpRequest=HttpContext.Current.Request;
var fileCount=httpRequest.Files.Count;
如果(httpRequest.Files.Count>0)
{
for(int i=0;i

您将在“postedFile”中获得该文件。

您必须删除此行

   headers.append('Content-Type', 'multipart/form-data')

然后它就会起作用。

@爱情王子你试过我的答案了吗?它工作了吗?不,它现在工作了:(
   headers.append('Content-Type', 'multipart/form-data')