0

我有一个 asp.net web api 应用程序,它充当 wcf web 服务的中继。在某些情况下,我想上传大文件。wcf 服务中的方法接受文件作为流。我不想将文件保存在我的中间服务器上 我想访问上传文件的流并将其提供给 wcf 方法,以便将数据直接流式传输到 wcf 服务。

这是客户端下载文件时的类似情况

using (IProductsChannel channel = ChannelFactory.CreateChannel())
            {
                result.Content = new StreamContent(channel.GetFile());
                result.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain");
                return result;
            }
4

1 回答 1

0

这里至少有一种方法。使用 HTTPContext 唯一的问题是它不适合单元测试,因此我们必须在最终解决方案中将其抽象出来。

 var file =   HttpContext.Current.Request.Files[0];


            var result = new HttpResponseMessage(HttpStatusCode.OK);

            using (IProductsChannel channel = ChannelFactory.CreateChannel())
            {
                channel.SaveFile(file.InputStream);
            }

            return  new HttpResponseMessage(HttpStatusCode.Created);
        }
于 2012-08-16T06:28:22.970 回答