【发布时间】:2016-01-15 06:41:23
【问题描述】:
下面的代码 sn -p 成功地将单个文件 HttpPosts 到 WebAPI。我想扩展它以构建包含多个文件的 StreamContent(类似于 Fiddler 多文件帖子)。
我知道我应该为 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。
【问题讨论】:
标签: c# json post asp.net-web-api