【问题标题】:Difference between FileStream and WebClientFileStream 和 WebClient 的区别
【发布时间】:2015-06-17 07:17:04
【问题描述】:

所以,我实际上是在尝试为 Web 项目设置 Wopi Host。

我一直在使用这个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);

正在编译。使用这个示例,我设法在我的 office web 应用程序中打开了 excel 文件,但没有打开 word 和 powerpoint 文件。所以,这是我的问题。

这两种方法之间是否有区别,尽管 WebClient 允许“在线阅读”,但它可能会改变我正在阅读的文件的内容?

对不起,不清楚的帖子,解释这样的问题并不容易x)我尽力了。

感谢四位的帮助!

【问题讨论】:

  • 没有“http 文件”之类的东西——你得到的是一个 URL,没有文件。不确定“这可能会改变我正在阅读的文件的内容”是什么意思。如果您需要能够修改文件然后将其保存回来,那么 Web 服务器需要支持(并且您必须具有权限...)
  • 不,我只需要阅读它。 (抱歉解释:/)。事实上,我的办公室 Web 应用服务器需要将要显示的文件的内容。 FileStream 只能操作“本地”文件,如下面的答案所示。对于我检查它们的权限。我所做的是,我调用了我的项目的 api 链接,它返回了传入参数的文件的内容。所以我设法像这样下载它。然后,我尝试在 Associates 软件中打开 ppt 和 docx 文件。这个词开得很好!但遗憾的是不是PPT
  • 我不知道这是否清楚,这一切都很难解释:/
  • 还不是很清楚,不是……你的问题真的是“我用WebClient下载了一个Powerpoint文件,打不开”吗?如果是这样,其余的似乎无关紧要......
  • 不,这不是问题所在。我不应该调用这个 url,它只是为了测试。 office web app 调用我的应用程序 2 次以便能够呈现文档视图。首先它会询问一些关于它的信息(大小,...)。我的应用程序响应,然后office web app 要求我的应用程序获取文件的二进制内容。我在上面发布的示例应该获取文件内容(使用WebClient),并将其返回给office web app,以便他可以渲染视图。当我在 excel 文件上尝试时,这个示例正在工作。

标签: c# bytearray webclient filestream ms-wopi


【解决方案1】:

这两种方法之间是否有区别,可能会改变 我正在阅读的文件的内容,尽管事实上 WebClient允许“在线阅读”

FileStream 打开一个文件句柄,指向放置在本地磁盘上的文件,或位于网络中其他位置的远程磁盘。当您打开 FileStream 时,您正在直接操作该特定文件。

另一方面,WebClientHTTP protocol 的包装器。它的职责是构造 HTTP 请求和响应消息,让您可以方便地使用它们。它不直接了解文件等资源,或者特别是它所在的位置。它只知道构造符合规范的消息,发送请求并期待响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-18
    • 2014-03-02
    • 1970-01-01
    • 2010-11-03
    • 2015-10-21
    • 1970-01-01
    相关资源
    最近更新 更多