我有一个接受HttpPostedFileBase的端点,它提供了一个可以读取的输入流来下载文件。我实际上并不想阅读它 - 我想立即将它重新发布到另一个域上的另一个端点(这是因为我的API建立在另一个端点之上)。
我可以在不等待读取整个流的情况下执行此操作吗?我不希望我的终端用户被不必要地延迟。
答案 0 :(得分:0)
public ActionResult Upload(HttpPostedFileBase image)
string url = "www.example.com";
using (var wb = new WebClient())
{
var stream = wb.OpenWrite(url, "POST");
int read;
byte[] buffer = new byte[0x1000];
while ((read = image.InputStream.Read(buffer, 0, buffer.Length)) > 0)
stream.Write(buffer, 0, read);
}
}
不幸的是,使用OpenWrite似乎并没有提供任何简单的选项来读取响应,所以我可能只是缓冲整个流并使用UploadData :(。