使用 WCF Rest 服务下载文件?

问题描述 投票:0回答:3

如果有一种方法通过流使用rest上传文件还有“

Download
”吗?如果是的话,你能告诉我怎么做吗?提前致谢!

c# wcf rest
3个回答
9
投票

我用来从我的 REST 服务下载文件的示例方法:

[WebGet(UriTemplate = "file/{id}")]
        public Stream GetPdfFile(string id)
        {
            WebOperationContext.Current.OutgoingResponse.ContentType = "application/txt";
            FileStream f = new FileStream("C:\\Test.txt", FileMode.Open);
            int length = (int)f.Length;
            WebOperationContext.Current.OutgoingResponse.ContentLength = length;
            byte[] buffer = new byte[length];
            int sum = 0;
            int count;
            while((count = f.Read(buffer, sum , length - sum)) > 0 )
            {
                sum += count;
            }
            f.Close();
            return new MemoryStream(buffer); 
        }

1
投票

您还可以使用以下内容

 public Stream GetFile(string id)
 {
      WebOperationContext.Current.OutgoingResponse.ContentType = "application/txt";
      var byt = File.ReadAllBytes("C:\\Test.txt");
      WebOperationContext.Current.OutgoingResponse.ContentLength = byt.Length;
      return new MemoryStream(byt);
 }

当它被定义为

[WebGet(UriTemplate = "file/{id}")]
[OperationContract]
Stream GetFile(string id);

0
投票

它也适用于大文件吗?我试图下载一个 500mb 的文件大小,这是通过 transferMode as Stream 中的“信号量超时”异常。

© www.soinside.com 2019 - 2024. All rights reserved.