2017-07-16 110 views
2

我想在Asp.net核心中實現文件上傳。請看下文中我endpoit:如何在asp.net核心web api中上傳文件

[HttpPost("upload")] 
    [AllowAnonymous] 
    public async Task<IActionResult> Post(List<IFormFile> files) 
    { 
     long size = files.Sum(f => f.Length); 

     // full path to file in temp location 
     var filePath = Path.GetTempFileName(); 

     foreach (var formFile in files) 
     { 
      if (formFile.Length > 0) 
      { 
       using (var stream = new FileStream(filePath, FileMode.Create)) 
       { 
        await formFile.CopyToAsync(stream); 
       } 
      } 
     } 


     return Ok(new { count = files.Count, size, filePath }); 
    } 

當我把它用郵差,我得到以下的結果,即使我選擇的任何文件進行測試:

{ 
    "count": 0, 
    "size": 0, 
    "filePath": "/var/folders/24/rmgj9ypj37709tnhxr2hgtfr0000gn/T/tmpX0SwbF.tmp" 
} 
+0

提供更多信息,例如您希望發送的請求的方式,您使用的MIME類型等。 – Tseng

回答

1

這應該引導你在正確的方向。該方法正在接收一個jQuery post對象。

[HttpPost] 
    public async Task<IActionResult> ReadFileHeaders(IFormFile file) 
    { 
     if (file != null) 
     { 
      using (var stream = new MemoryStream()) 
      { 
       await file.CopyToAsync(stream); 
       // Now the file is loaded into the stream variable 
      } 
     } 

     return BadRequest("File required"); 
    }