c# - 即使指定了多个文件上传,IFormFile IEnumerable 的大小也为 1
问题描述
模型
public List<ZertifikatFiles> Files { get; set; }
[NotMapped]
public IEnumerable<IFormFile> Certificates { get; set; }
看法
<form asp-action="AddCertificate" method="post" enctype="multipart/form-data" data-file-dragndrop>
<div class="row">
<div class="col-md-3"></div>
<div class="form-group col-md-9">
<input type="file" asp-for="IFormFiles" multiple />
<span asp-validation-for="IFormFiles" class="text-danger"></span>
</div>
</div> </form>
控制器
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> AddCertificate(Certificates certificates )
{
if (ModelState.IsValid)
{
if (certificates.IFormFiles != null && !certificates.IFormFiles.IsEmpty())
{
certificates.Files = new List<CertificateFiles>();
foreach (IFormFile formFile in certificates.IFormFiles)
{
byte[] bytes = new byte[formFile.Length];
using (var reader = formFile.OpenReadStream())
{
await reader.ReadAsync(bytes, 0, (int)formFile.Length);
}......
每当我尝试上传多个文件时,IEnumerable 只会获取第一个文件,而将其余文件留在后面。
翻译:选择文件,3个文件
即使我在输入字段中指定了多个文件上传,它也certificates.IFormFiles
为我提供了 1 的大小。
我究竟做错了什么?
解决方案
如果您使用 .Net core 2.0 或 2.1,请尝试将您的 SDK 更新到 2.2.203,然后它将正常工作。
问题不在您的代码中,这是 .NET 核心中的一个错误,
我邀请您在此处阅读有关此错误的更多信息:https ://github.com/aspnet/Mvc/issues/8527
推荐阅读
- ios - GCDAsyncUdpSocket 在“没有到主机的路由”和“主机已关闭”之间停止工作
- reactjs - 用于 `styled-components` 的自定义 `stylelint` 插件
- ios - UICollectionView 上的滞后滚动问题
- php - 没有令牌的 Fitbit Auth 2 Api 集成已过期
- java - 为什么 android studio 不识别 mp4 格式?
- c - 为什么这个程序会出现故障?
- azure - 从 Azure Web App (Linux) 提供 Angular PWA 失败,因为缺少 .webmanifest
- python-3.x - 如何在谷歌云上运行不可用的 503 服务?
- powershell - Powershell 使用 $true 和 $false 导入 csv
- python - 如何根据列表中的值打印给定值一定次数?