0

我正在与我们的一种内部工具进行 WOPI 集成,在将文档保存在客户端时遇到了一个问题。

我能够将ClientUrl设置为 GET 方法,该方法将文件内容返回为“application/octet-stream”。之后,通过单击“在 Word 中编辑”,Word 成功打开并显示所需的文档。但我只能在本地保存一份文档。

我不仅为 GET 实现了相同 URL 的方法,还为 POST 和 PUT 实现了方法,并希望 Word 会尝试通过使用文件内容调用它们来保存此文件,但目前我什至无法从 Word 中保存。

我想实现与 SharePoint/OneDrive 相同的功能,允许我将打开的文档直接保存到服务器。

请有人帮我解决这个问题吗?

4

1 回答 1

2

根据您是与 Office Online Server 2016 还是 Office Web Apps 2013 集成,您应该分别参考文档或文档。

要成功实施“保存”操作,您必须:

  • 设置SupportsUpdatetrue_CheckFileInfo
  • 执行相应的操作:(PutFile强制)和 PutRelativeFile(可选,用于新建文件,更新时不一定需要)
  • 如果您想支持 OWA 2013,则必须实现所谓的“Cobalt”,即MS-FSSHTTP。幸运的是,OOS 2016 不再需要这样做
    • 在这种情况下,重要的是设置SupportsCobaltSupportsCoauth能力CheckFileInfotrue
  • 实施锁定以防止编辑时发生任何冲突也是明智之举。设置SupportsLocks并实现相应的方法

如果您需要一些示例,请在 GitHub 中搜索ms-wopi标签。

如果您想支持从 MS Word 的桌面版本进行更新,那就完全不同了。您需要寻找其他地方 - 它可以通过实现 WebDAV(HTTP 之上的扩展)来完成。与 MS-WOPI 不同,它是一个相当复杂的协议。我建议使用外部库,例如IT Hit的 WebDAV 服务器。这应该会让你的生活更轻松。

于 2017-03-13T21:43:36.840 回答