Sco*_*tie 5 multipartform-data asp.net-core
在 Asp.Net Core 中,他们似乎已经取消了Request.Content.ReadAsMultipartAsync支持 IFormFile的功能。
这使得在您拥有实际文件的地方上传更容易,但是,我有一个用例,我需要将文件上传到浏览器内存,对其进行处理,然后将其作为正文中多格式数据的一部分发送。IFormFile 无法看到这一点,因为没有要读取的实际文件。只有当您在 Content-Disposition 上有一个文件名属性并且在客户端上有一个要上传的实际文件时,它才有效。
在我的 Asp.Net 4 应用程序中,无论是在边界之间发送还是作为附件发送,我都可以读取正文中的多部分数据。
我如何在 .Net Core 中实现这一点?
我发现多部分值作为键/值对数组传递到 HttpRequest.Form 中。body 的 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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7136 次 |
| 最近记录: |