我将多部分表单数据传递给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>
,则为空。如何传递数据以接收所有文件?
答案 0 :(得分:1)
我使用它的方法是编辑多部分表单数据,以便每个文件发送的名称都有它自己的索引:
------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>();