2017-02-21 196 views
1

我正在將多部分表單數據傳遞給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-- 

在模型然而,如果我改變DataIEnumerable<HttpFile>,它是空的。我如何傳遞數據來接收所有文件?

回答

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>();

相關問題