所以,我实际上是在为一个Web项目设置一个Wopi主机。
我一直在使用这个sample(来自Shawn Cicoria的那个,如果有人知道的话),他提供了一个完整的代码示例,告诉您如何构建使用Office Web App服务器的链接有一些文件。
我的问题是,他的样本正在使用OWA服务器上的文件,我需要它来处理在线文件(例如http://myserv/res/test.docx
。所以当他读取他的文件内容时,他正在使用它:
var stream = new FileStream(myFile, FileMode.Open, FileAccess.Read);
responseMessage.Content = new StreamContent(stream);
但这不适用于“http”文件,所以我改变了它:
byte[] tmp;
using (WebClient client = new WebClient())
{
client.Credentials = CredentialCache.DefaultNetworkCredentials;
tmp = client.DownloadData(name);
}
responseMessage.Content = new ByteArrayContent(tmp);
正在编译。通过此示例,我设法在我的办公室Web应用程序中打开excel文件,但不打开单词和powerpoint文件。所以,这是我的问题。
这两种方法之间是否存在差异,这可能会改变我正在阅读的文件的内容,尽管WebClient提到了“在线阅读”这一事实?
对于不清楚的帖子感到抱歉,解释这样的问题并不容易x)我尽了最大努力。
感谢你的帮助!
答案 0 :(得分:1)
这两种方法之间是否存在差异,这可能会改变 我阅读的文件的内容,尽管事实上 WebClient允许"在线阅读"
FileStream
打开文件句柄到本地放在磁盘上的文件,或者放在网络中其他位置的远程磁盘。当您打开FileStream
时,您将直接操作该特定文件。
另一方面,WebClient
是HTTP protocol的包装。它的职责是构建HTTP请求和响应消息,以便您方便地使用它们。它没有直接了解文件等资源,或者特别是它所在的位置。它所知道的只是构造符合规范的消息,发送请求并期待响应。