在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; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。