我的ASP.NET Core应用程序中IFormFile中的non-public.member _baseStream属性在上传文件后引发以下异常:
ReadTimeout = ((Microsoft.AspNetCore.Http.Internal.FormFile)BildUpload)._baseStream.ReadTimeout' threw an exception of type 'System.InvalidOperationException'
我正在尝试使用带有以下代码的剃须刀页面上传文件:
<form method="post" enctype="multipart/form-data">
<div class="form-group">
<input type="file" name="BildUpload" />
</div>
<input type="submit" value="Upload" class="btn btn-default" />
</form>
在代码隐藏类中,我只得到了声明,除了剃刀页面外,其他任何东西都不读取或写入参数:
public IFormFile BildUpload { get; set; }
感谢您的帮助!
我的最终目标是将文件解析为字节数组,然后将其解析为这样的数据库:How to Convert a file into byte array directly without its path(Without saving file) 但是在那里,我得到了一个空指针异常。
答案 0 :(得分:0)
如果有人面临类似行为。这是我上传图片并将其转换为字节数组(用于将其存储在Microsoft SQL数据库中)的解决方案:
首先使用问题的xaml代码和IFormFile属性。 在后面的代码中,添加以下代码以将表单数据处理为字节数组:
public async Task<IActionResult> OnPostAsync(string id)
{
//get the "Kontakt" entity
if (!await SetKontaktAsync(id))
{
return NotFound();
}
//convert form data to byte array and assign it to the entity
if (BildUpload.Length > 0)
{
using (var ms = new MemoryStream())
{
BildUpload.CopyTo(ms);
Kontakt.Bild = ms.ToArray();
}
}
//save changes to the database
_context.Attach(Kontakt).State = EntityState.Modified;
await _context.SaveChangesAsync();
//reload page
return await OnGetAsync(Kontakt.GID);
}
框架:ASP.NET Core 2.2,实体框架Core 2.2
答案 1 :(得分:-1)
您可以阅读有关文件上传的here,以确保您没有错过任何步骤,以防万一您需要更多有关文件上传的知识。