我读过很多关于使用传统html表单上传文件并在服务器端使用IFormFile(ASP.NET5 RC)的帖子。但是,我想使用ajax(特别是ng-file-upload)上传文件,并且在使用ajax时,IFormFile似乎不起作用。请求有效负载如下所示:
------WebKitFormBoundaryqGdWTqE8FFBpVPbA
Content-Disposition: form-data; name="file[0]"; filename="mydoc.pdf"
Content-Type: application/pdf
------WebKitFormBoundaryqGdWTqE8FFBpVPbA--
我相信这些文件是在Request.Body中传递的,但我不确定如何从那里提取它们。
答案 0 :(得分:1)
我刚刚使用Kendo UI上传控件执行此操作,我还发现未填充IFormFile参数。我使用Request.Form.Files
工作了 foreach (var file in Request.Form.Files)
{
var fileBytes = new byte[file.Length];
await file.OpenReadStream().ReadAsync(fileBytes, 0, (int)file.Length);
SaveDoc(fileBytes, Path.GetFileNameWithoutExtension(fileName), docTypeId, enrollmentId, Path.GetExtension(fileName).Replace(".", ""), comments: comments);
}
答案 1 :(得分:0)
当您逐个上传每个文件时,它会被填充:
[HttpPost("upload")]
public async Task<IActionResult> Upload(IFormFile file)
{
...
}