上一篇文章已经介绍了整个安装过程了。只要在浏览器中输入文档转换server的ip,会自动跳转,出现如下页面。

那么就可以实现本地文档预览了,你可以试试。(注意;是本地哦,路径不要写错,类似“\\file\share”。如果不能预览,那么还要注意文档的权限哦,不多说。)

看到这个,就算完成80%以上的工作了,因为不需要写任何代码,只要安装好服务器,就可以实现本地文件预览了。那么问题就来了,怎么实现http预览,跨服务器预览呢?且看下面。

如果要想实现http访问,跨服务器访问,那么就要实现wopi协议了。这个不是只能实现本地文件预览。

这个也是大家最关心的了。刚开始的时候我也一直不知道怎么弄,问了好多其他童鞋,都说只能实现本地文件预览。后来寻寻觅觅,终于找了C#的实现,我尝试着用php简单的实现了,很简单。继续往下看吧。

以下也主要是参考:http://www.cnblogs.com/poissonnotes/p/3277280.html

这篇文章也是超级经典。(上篇安装的也是参照这个作者的,文章很经典)

我也不知羞耻,重新用php炒一下剩饭。

1、主要实现wopi协议(http://msdn.microsoft.com/en-us/library/hh622722(v=office.12).aspx 参看WOPI协议,装下13,可以下载下来看看)

WOPI通讯主要实现两个服务: 
1)、一个是CheckFileInfo服务 
2)、一个是GetFile服务

2、创建服务

1)、首先创建CheckFileInfo服务 
我们先确定这个服务的路由地址 
设置为:HTTP://server/<...>/wopi*/files/?access_token=

注意:这里没有验证access_token,请自行验证。很多同学问access_token怎么来的,这个自己设置就行,不是必须的。

代码实现如下,主要是返回一个json对象的文件信息。

在浏览器中输入:http://localhost/wopihost/wopi/files/test.docx(项目中需要存在该test.docx文件),返回如下数据,则表示成功

2)、再来制作GetFile服务

我们先确定这个服务的路由地址 
设置为:HTTP://server/<...>/wopi*/files//contents?access_token=

代码如下:GetFile服务主要是返回文件的数据流。

3)、验证服务

http://192.168.1.21/hosting/discovery 
通过以上链接返回的信息,可以知道不同类型的文档访问的链接。

在浏览器输入以下链接:http://192.168.1.21/wv/wordviewerframe.aspx?WOPISrc=http%3A%2F%2F192.168.1.102%2Fwopihost%2Fwopi%2Ffiles%2Ftest.docx 
(注意test文档必须存在,路径正确哦)

其中:192.168.1.21是office web apps server,192.168.1.102是实现wopi服务的server

如果出现如下,则表示成功。 很简单吧,大家可以随意的集成到自己的项目中去了。

注意:如果没有成功,不要灰心,可以先调试excel,因为excel没有验证SHA256算法,如果excel成功了,其他类型文档没有成功,那么说明SHA256算法实现不对。

附上我的wopihost开源实现,仅供参考:https://github.com/cisiqo/WopiHost (最近又抽筋了,访问比较慢)

另外再附上公司使用这套方案的转换页面: 第一个使用了iframe,第二个正常访问的

==========分割线=========

当然,office web apps不仅仅做可以预览,当然也可以在线编译了。下面附一张别人验证的截图(http://blog.csdn.net/ma_jiang/article/details/24057847 评论中有贴过的):

以上edit和remark我没有做过验证,这个也是我接下来的工作,有进展我会继续博客的。

view和mobileview已经验证,目前测试https下,好像预览也有问题,不过这个是可以解决的,传输过程可以使用https,服务器之间可以不用走https协议。

========再分割=======

在查资料的时候发现,我们的竞争对手明道(企业社交应用)也是用这个方案(https://docview.mingdao.com),不知道他们使用的情况如何。

微软office web apps 服务器搭建之在线文档预览(二)的更多相关文章

  1. 微软office web apps 服务器搭建之在线文档预览(一)

    office web apps安装 系统要求为Windows Server 2012, 注意:转换文档需要两台服务器,一台为转换server,另外一台为域控server.(至于为什么要两台,这个请自行 ...

  2. 微软office web apps 服务器搭建之在线文档预览

    案例:http://owa.linbsoft.com/op/generate.aspx# 文档地址:http://demo.linbsoft.com/CourseFile/201407/2014070 ...

  3. 在线文档预览方案-office web apps

    最近在做项目时,要在手机端实现在线文档预览的功能.于是百度了一下实现方案,大致是将文档转换成pdf,然后在通过插件实现预览.这些方案没有具体实现代码,也没有在线预览的地址,再加上项目时间紧迫.只能考虑 ...

  4. [转载]在线文档预览方案-Office Web Apps

    最近在做项目时,要在手机端实现在线文档预览的功能.于是百度了一下实现方案,大致是将文档转换成pdf,然后在通过插件实现预览.这些方案没有具体实现代码,也没有在线预览的地址,再加上项目时间紧迫.只能考虑 ...

  5. 在线文档预览方案-office web apps续篇

    上一篇在线文档预览方案-office web apps发布后收到很多网友的留言提问,所以准备再写一篇,一来介绍一下域控服务器安装,总结一下大家问的多的问题,二来宣传预览服务安装与技术支持的事情. 阅读 ...

  6. office web apps 部署-搭建office web apps服务器

    二.搭建office web apps服务器 相关文件可以去焰尾迭分享的百度网盘下载,下载地址:http://pan.baidu.com/s/1o6tCo8y#path=%252Foffice%252 ...

  7. 解决officeOnline文档预览服务器只能域名提交的限制Redirect

    此项目是解决officeOnline文档预览只能用域名提交的限制 http://officeOnline文档预览域名或IP/op/generate.aspx // 微软原生页面 创建链接后会生成全屏预 ...

  8. office web apps的搭建部署(1)(写于2017.12.27)

    因为业务方面的需求,项目要求搭建office-web-apps这个玩意儿,做一个在线预览编辑的功能,为了方便,我下面都用OWA代替这个服务. 首先说一下什么是office-web-apps-serve ...

  9. Office Web Apps 2013 修改Excel在线查看文件大小限制

    前言 最近搭建了一个OWA 2013环境,帮客户实现在线查看Excel文档,不过,使用过程中出现了错误,文件大小超过10MB就无法预览了,查了好久,发现需要使用PowerShell命令进行修改. 1. ...

随机推荐

  1. Hadoop学习之路(十九)MapReduce框架排序

    流量统计项目案例 样本示例 需求 1. 统计每一个用户(手机号)所耗费的总上行流量.总下行流量,总流量 2. 得出上题结果的基础之上再加一个需求:将统计结果按照总流量倒序排序 3. 将流量汇总统计结果 ...

  2. Monkeyrunner测试小实践

    环境搭建完成后,我们通过命令打开模拟器,前提是在Eclipse中创建了一个模拟器 (1)cmd命令:emulator -avd 模拟器名称 启动了模拟器,此时你就会看到一个安卓模拟器的弹出 (2)cm ...

  3. linux各种压缩包的压缩和解压方法

    .tar/.war(tar是打包,不是压缩) 解包:tar xvf FileName.tar / FileName.war 打包:tar cvf FileName.tar DirName .gz 解压 ...

  4. 【luogu P2831 愤怒的小鸟】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2831 写点做题总结:dp,搜索,重在设计状态,状态设的好,转移起来也方便. 对于一条抛物线,三点确定.(0, ...

  5. 精读 SBAR SDN flow-Based monitoring and Application Recognition

    目录 架构 测量模块 分类模块 具体实现 实验:最后接入巴塞罗那的校园网流量测试: SBAR: SDN flow-Based monitoring and Application Recognitio ...

  6. 大话Linux内核中锁机制之内存屏障、读写自旋锁及顺序锁

    大话Linux内核中锁机制之内存屏障.读写自旋锁及顺序锁 在上一篇博文中笔者讨论了关于原子操作和自旋锁的相关内容,本篇博文将继续锁机制的讨论,包括内存屏障.读写自旋锁以及顺序锁的相关内容.下面首先讨论 ...

  7. 查询优化百万条数据量的MySQL表

    转自https://www.cnblogs.com/llzhang123/p/9239682.html 1.两种查询引擎查询速度(myIsam 引擎 ) InnoDB 中不保存表的具体行数,也就是说, ...

  8. MySQL:如何导入导出数据表和如何清空有外建关联的数据表

    1.导入导出 导入数据库:前提:数据库和数据表要存在(已经被创建) (1)将数据表 test_user.sql 导入到test 数据库的test_user 表中 [root@test ~]# mysq ...

  9. TP5.0中多图上传文件名重复问题

    最近在做项目的时候出现了一个问题,这里记录一下: 问题: 使用TP5.0框架自带的文件上传方法后,发现多图上传可能会出现文件名重复的问题. 问题代码: 找到TP5框架上传文件命名方法,/thinkph ...

  10. php面试题,百度答案

    一公司: 1.@当将其放置在一个PHP表达式之前有什么作用? 2.用foreach把$arr=array(1,2,3,4)每个values值乘2输出: 3.PHP定界符如何使用? 4.说出mysql_ ...