2017年12月12日更新,Github问题现已更新为以下问题的解决方案,请参阅ardalis的评论:3691
我一直在尝试使用Microsoft的Sample中的信息在.NET Core MVC中运行文件流; FileUploadSample
但纯粹的.Net Core MVC没有成功(因为流的示例使用Angular绑定,这不是我正在使用的)。
此Test File Streaming Repo包含重现我收到的问题的最低限度代码。
用户导航到 TestFileUpload / Views / Streaming / Index.cshtml ,他们将输入一些详细信息并选择要上传的文件。然后,用户将提交表单;
<form asp-area="" enctype="multipart/form-data" asp-controller="Streaming" asp-action="StreamUpload" asp-route-returnurl="@ViewData[ "ReturnUrl" ]" id="submit-file-form" method="post">
<input name="CurriculumVitae" type="file" id="file" />
<button type="submit">Create User</button>
</form>
然后调用表单: TestFileUpload / Controllers / StreamingController.cs
public async Task< IActionResult > StreamUpload() {
...
var reader = new MultipartReader( boundary, HttpContext.Request.Body );
var section = await reader.ReadNextSectionAsync();
...
}
但是,然后我收到错误“IOException:Stream意外结束,内容可能已被其他组件读取。”
TestFileUpload.Controllers.StreamingController+<StreamUpload>d__2.MoveNext() in StreamingController.cs
51. var section = await reader.ReadNextSectionAsync();