端点接受HttpPostedFileBase并将传入流写入Webclient以进行上载

时间:2014-05-30 01:44:12

标签: c# asp.net http file-upload stream

我有一个接受HttpPostedFileBase的端点,它提供了一个可以读取的输入流来下载文件。我实际上并不想阅读它 - 我想立即将它重新发布到另一个域上的另一个端点(这是因为我的API建立在另一个端点之上)。

我可以在不等待读取整个流的情况下执行此操作吗?我不希望我的终端用户被不必要地延迟。

1 个答案:

答案 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 :(。