加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-core – 在Asp.Net Core中,如何从正文中获取multipart /

发布时间:2020-12-16 09:44:02 所属栏目:asp.Net 来源:网络整理
导读:在Asp.Net Core中,看起来他们已经取消了Request.Content.ReadAsMultipartAsync功能,有利于IFormFile. 这使得上传你实际文件更容易,但是,我有一个用例,我需要将文件上传到浏览器内存,处理它,然后将其作为体内多表单数据的一部分发送. IFormFile无法看到这一点
在Asp.Net Core中,看起来他们已经取消了Request.Content.ReadAsMultipartAsync功能,有利于IFormFile.

这使得上传你实际文件更容易,但是,我有一个用例,我需要将文件上传到浏览器内存,处理它,然后将其作为体内多表单数据的一部分发送. IFormFile无法看到这一点,因为没有实际要读取的文件.它仅适用于Content-Disposition上的filename属性和要上载的客户端上的实际文件.

在我的Asp.Net 4应用程序中,我可以读取正文中的mutlipart数据,无论是在边界之间发送还是作为附加文件.

我如何在.Net Core中实现这一目标?

解决方法

我想到的是多部分值作为键/值对的数组传递给HttpRequest.Form.正文的multipart上的“name”值确定了键的名称.

我创建了一个抓取文件和表单值的辅助方法.

public static List<FileModel> GetFileModelsFromRequest(HttpRequest request)
{
    var fileModels = new FileModels();

    foreach (var formField in request.Form)
    {
        // Form data 
        var fileModelText = formField.Value;

        ... process and add to the FileModel list
    }

    if (request.Form.Files != null && request.Form.Files.Count > 0)
    {
        foreach (var file in request.Form.Files)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                // File data
                formFile.CopyTo(ms);                    
            }

            ... process and add to the FileModel list
        }
    }

    return fileModels;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读