我从来没有使用过WCF,但我想创建一个简单的服务。我想让电脑从本地机器上传文件。我在我的界面得到这个:WCF上传文件
[OperationContract]
[WebInvoke(Method = "GET",UriTemplate = "/File")]
Stream GetFile();
在该方法中,我只是这样做:
return new FileStream(@"c:\myfile.zip", FileMode.Open);
当我运行这个从客户端,Result
属性包含流本身。这很好,它工作,但我宁愿客户端从服务器本身访问文件,而不是复制整个事情。上传文件的URL是什么,以便客户端可以直接从服务器访问它?我认为它是http://computername:port/something...
(我相信这是一个REST服务?)
无论如何分享它(流,共享文件夹,http,ftp,...),它都需要复制文件内容,不是吗? – ChrisWue
但是如果客户端不使用WCF服务呢?我假设他们仍然可以直接访问文件?此外,上述方法不允许流式传输,因为它会先下载整个文件(例如音乐,视频等)。 – Skoder
为了使用WCF流式传输文件,您可以将transferMode属性设置为“流式传输”,这将使您的流文件连续而不是等待整个响应可用的缓冲模式。 – Rajesh