使用多个文件读取多部分表单数据
Read multipart form data with multiple files
我正在将多部分表单数据传递到 API 端点。数据作为模型传递,如下所示:
public class AttachmentModel
{
public HttpFile Data { get; set; }
public string Description { get; set; }
public Attachment Attachment => new Attachment
{
Data = Data?.Buffer ?? new byte[0],
Description = Description,
FileName = Data?.FileName
};
}
这正常工作,文件正确解析。我希望能够一次上传多个文件,发送的多部分表格似乎是正确的,在 Data
:
下上传了多个文件
------WebKitFormBoundarypABSUgXhqOWGIbhU
Content-Disposition: form-data; name="Description"
------WebKitFormBoundarypABSUgXhqOWGIbhU
Content-Disposition: form-data; name="Data"; filename="file1.pdf"
Content-Type: application/pdf
------WebKitFormBoundarypABSUgXhqOWGIbhU
Content-Disposition: form-data; name="Data"; filename="file2.pdf"
Content-Type: application/pdf
------WebKitFormBoundarypABSUgXhqOWGIbhU--
然而,在模型上,如果我将 Data
更改为 IEnumerable<HttpFile>
,则它为空。如何传递数据以接收所有文件?
我让它工作的方法是编辑多部分表单数据,以便发送每个文件的名称都有自己的索引:
------WebKitFormBoundarypABSUgXhqOWGIbhU
Content-Disposition: form-data; name="Description"
------WebKitFormBoundarypABSUgXhqOWGIbhU
Content-Disposition: form-data; name="Data[0]"; filename="file1.pdf"
Content-Type: application/pdf
------WebKitFormBoundarypABSUgXhqOWGIbhU
Content-Disposition: form-data; name="Data[1]"; filename="file2.pdf"
Content-Type: application/pdf
------WebKitFormBoundarypABSUgXhqOWGIbhU--
然后在模型中我将数据更改为 HttpFile 列表:
public List<HttpFile> Data { get; set; } = new List<HttpFile>();
我正在将多部分表单数据传递到 API 端点。数据作为模型传递,如下所示:
public class AttachmentModel
{
public HttpFile Data { get; set; }
public string Description { get; set; }
public Attachment Attachment => new Attachment
{
Data = Data?.Buffer ?? new byte[0],
Description = Description,
FileName = Data?.FileName
};
}
这正常工作,文件正确解析。我希望能够一次上传多个文件,发送的多部分表格似乎是正确的,在 Data
:
------WebKitFormBoundarypABSUgXhqOWGIbhU
Content-Disposition: form-data; name="Description"
------WebKitFormBoundarypABSUgXhqOWGIbhU
Content-Disposition: form-data; name="Data"; filename="file1.pdf"
Content-Type: application/pdf
------WebKitFormBoundarypABSUgXhqOWGIbhU
Content-Disposition: form-data; name="Data"; filename="file2.pdf"
Content-Type: application/pdf
------WebKitFormBoundarypABSUgXhqOWGIbhU--
然而,在模型上,如果我将 Data
更改为 IEnumerable<HttpFile>
,则它为空。如何传递数据以接收所有文件?
我让它工作的方法是编辑多部分表单数据,以便发送每个文件的名称都有自己的索引:
------WebKitFormBoundarypABSUgXhqOWGIbhU
Content-Disposition: form-data; name="Description"
------WebKitFormBoundarypABSUgXhqOWGIbhU
Content-Disposition: form-data; name="Data[0]"; filename="file1.pdf"
Content-Type: application/pdf
------WebKitFormBoundarypABSUgXhqOWGIbhU
Content-Disposition: form-data; name="Data[1]"; filename="file2.pdf"
Content-Type: application/pdf
------WebKitFormBoundarypABSUgXhqOWGIbhU--
然后在模型中我将数据更改为 HttpFile 列表:
public List<HttpFile> Data { get; set; } = new List<HttpFile>();