我有数据从来源发送到我的Api,我需要将其发布到另一个POST
ActionResult。
我基本上在第一个功能中接收数据没有问题;
var provider = new MultipartFormDataStreamProvider(root);
try
{
//irrelevant confirmations and other code pieces are left out
await Request.Content.ReadAsMultipartAsync(provider);
foreach (MultipartFileData fileData in provider.FileData)
{
var appPath = System.AppDomain.CurrentDomain.BaseDirectory.ToString();
var basePath = Path.GetFullPath(Path.Combine(appPath, @"..\"));
var headerActivityPath = basePath + "\\Documents\\" + tenantString + "\\Activity\\" + activityId;
File.Copy(fileData.LocalFileName, Path.Combine(activityPath, fileName));
}
}
完成此文件的接收后,我需要进行POST。我想在不先将其保存到磁盘的情况下进行操作,所以我不知道应该在哪里使用POST
发出HttpClient
请求。
将要接收数据的ActionResult的参数为HttpPostedFileBase
,但我不知道要发送什么。
我以前使用的每种方法都使用磁盘上的文件,是否可以在不先将文件保存到磁盘的情况下执行此操作?
答案 0 :(得分:0)
HttpPostedFileBase
上有一个名为InputStream
的属性,它使您可以访问上载到端点的附件的内容。您可以将其用作HttpClient
中新StreamContent的参数。
foreach (MultipartFileData fileData in provider.FileData)
{
await client.PostAsync("http://someurl.com", new StreamContent(fileData.InputStream));
}