如何在 ASP.NET Core 中进行这样的文件上传?

Pro*_*ofK 3 asp.net asp.net-mvc upload file-upload asp.net-core-mvc

我正在关注一篇有关通过分块上传大文件的文章。处理每个文件的文章中的 .NET Framework(Core 之前)示例代码的一部分如下所示:

foreach (string file in Request.Files)
{
    var FileDataContent = Request.Files[file];
    if (FileDataContent != null && FileDataContent.ContentLength > 0)
    {
    ...
    }
}
Run Code Online (Sandbox Code Playgroud)

从那以后我发现我应该使用Request.Form.Files,但是代码:

foreach (var file in Request.Form.Files)
{
    var xx = Request.Form.Files[file];
}
Run Code Online (Sandbox Code Playgroud)

给我一个编译错误:

CS1503 参数 1:无法从“Microsoft.AspNetCore.Http.IFormFile”转换为“字符串”

我可以使用什么代码来实现相当于循环遍历 ASP.NET Core 2.0 中所有上传的文件?

Cod*_*ler 5

现在(我已经尝试过 ASP.Net Core 1.0 和 2.0)Request.Form.Files具有IFormFileCollection实现IEnumerable<IFormFile>. 因此不再需要通过字符串键访问文件字典。您基本上直接枚举实例IFormFile

foreach (IFormFile file in Request.Form.Files)
{
    //  Access properties of a file like file.Name or file.Length
}
Run Code Online (Sandbox Code Playgroud)