下面的代码片段成功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