下面的代碼片段成功HttpPosts單個文件到WebAPI。我想要擴展它來構建包含多個文件的StreamContent(類似於Fiddler多文件帖子)。POST StreamContent與多個文件
我知道我應該爲StreamContent添加一個「邊界」,但我不確定在哪裏。我想最終將FileStream/Stream參數轉換爲List,以便我可以遍歷集合並將StreamContent構建爲POST。
讓我知道這篇文章是否有意義。我會很感激任何建議。
在此先感謝!
public async Task<HttpStatusCode> UploadOrderFile(FileStream imageFileStream, string filename, string contentType = "image/png")
{
JsonApiClient._client.DefaultRequestHeaders.Clear();
var content = new MultipartFormDataContent
{
JsonApiClient.CreateFileContent(imageFileStream, filename, contentType)
};
JsonApiClient._client.DefaultRequestHeaders.Add("Authorization",
" Bearer " + JsonApiClient.Token.AccessToken);
var response = await JsonApiClient._client.PostAsync("api/UploadFile", content);
response.EnsureSuccessStatusCode();
return response.StatusCode;
}
internal static StreamContent CreateFileContent(Stream stream, string fileName, string contentType)
{
var fileContent = new StreamContent(stream);
fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
Name = "\"files\"",
FileName = "\"" + fileName + "\""
};
fileContent.Headers.ContentType = new MediaTypeHeaderValue(contentType);
return fileContent;
}
編輯:我沒有任何問題,接收和保存的文件發佈。問題在於創建發佈多個文件所必需的StreamContent。
謝謝你的迴應。我在上面發佈的代碼不會在WebAPI中發生。它發佈到WebAPI進行保存。我沒有問題接收多個文件;問題在於發佈多個文件。如您所見,我可以創建包含單個文件的StreamContent,但如果可能的話,我希望它包含多個文件。 – terbubbs
我編輯了我的答案,包括每個發佈文件的流。 –
是的,我注意到了。但是,就像我在之前的評論中所說的,我沒有任何問題接收和保存發佈的文件。問題在於創建發佈多個文件所必需的StreamContent。 – terbubbs