首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IFormFile 'System.InvalidOperationException‘

IFormFile 'System.InvalidOperationException‘
EN

Stack Overflow用户
提问于 2018-10-09 09:41:53
回答 2查看 1.2K关注 0票数 0

在我的_baseStream应用程序中,IFormFile中的非public.embers IFormFile属性在上传文件后抛出以下异常:

代码语言:javascript
复制
ReadTimeout =   ((Microsoft.AspNetCore.Http.Internal.FormFile)BildUpload)._baseStream.ReadTimeout' threw an exception of type 'System.InvalidOperationException'

我试图使用剃须刀页面上传一个文件,代码如下:

代码语言:javascript
复制
<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>

在代码隐藏类中,我只得到声明,除了剃刀页之外,没有任何其他东西读取或写入参数:

代码语言:javascript
复制
    public IFormFile BildUpload { get; set; }

谢谢你的帮忙!

我的最后一个目标是将文件解析为一个字节数组,并将sava解析为这样的数据库:如何在没有路径的情况下将文件直接转换为字节数组(不保存文件),但在那里,我得到了一个null指针异常。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-27 14:12:02

以防有人面临类似的行为。以下是上传图像并将其转换为字节数组(用于存储在Microsoft数据库中)的解决方案:

首先,使用问题中的xaml代码和IFormFile属性。在后面的代码中,添加此代码以将表单数据处理为字节数组:

代码语言:javascript
复制
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核心2.2,实体框架核心2.2

票数 0
EN

Stack Overflow用户

发布于 2018-10-09 10:16:38

您可以阅读有关文件上载这里,以确保您没有错过任何步骤,以防您需要更多关于文件上传的知识。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52717905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档