office web apps 实现Wopi预览编辑

WOPI主机

WOPI主机协议在此位置定义: http://msdn.microsoft.com/en-us/library/hh643135(v=office.12).aspx

有一个很好的概述,在Office开发团队的博客文章中介绍WOPI:http://blogs.msdn.com/b/officedevdocs/archive/2013/03/21/introducing-wopi.aspx

此外,2013年(与2010年相比)的架构情况如下:

http://technet.microsoft.com/en-us/library/jj219437.aspx

回调界面

请注意,WOPI主机必须响应来自OWA的内容的直接呼叫。

图片

建设WOPI主机

所以,对于这篇文章,我们将介绍一个正在工作的WOPI主机,它将利用OWA用于OWA内部部署的显示内容(Word,Excel和PowerPoint)。

发现XML

在〜/ App_Data位置,有一个discovery.xml文件。这是使用OWA服务器中的以下URL检索的。该XML只需要保存到该位置。

http://owa1.wingtip.com/hosting/discovery

该解决方案通过检查此文件构建基于文件类型的正确的完整URL。

上传文件/链接生成

为了测试,您可以使用Upload API上传文件。这将接受多个文件,并返回一个作为链接集合的JSON结果,并为每个文件访问令牌。

Link生成用于生成可用于查看OWA上将从WOPI主机使用的Office文件的完全限定链接。

访问令牌

OWA支持WOPI主机使用访问令牌。请注意,样本使用随机生成的盐值提供文件名的HMACSHA256。

主要接口:

"GET":"api/wopi/files/{name}?access_token={access_token}"//获取文件信息

"GET":"api/wopi/files/{name}/contents?access_token={access_token}"//获取文件流

"POST":"api/wopi/files/{name}/contents?access_token={access_token}"//保存文件信息

实现了这三个接口,基本就ok了。

excel实现:

 word在线编辑需要实现Cobalt或FSSHTTP / FSSHTTPB。具体可以参考:https://github.com/thebitllc/WopiBasicEditor

 这个也可以参考下:https://github.com/petrsvihlik/WopiHost.

以下是我基于网上代码改的源码:

https://github.com/LonelyCodelang/WOPI

原文地址:https://www.cnblogs.com/LonelyCode/p/6912006.html