Seafile社区版集成Office Online Server实现office文件预览

百度能查到一篇官方论坛的方法,但这种方式可能更适合商业版,社区版集成后word文件每次只能预览1页,Excel文件打开就提示超时,基本不能用。

既然社区版是开源的,就直接改源码吧。

我的目的很简单,只要能预览就行,不需要在线编辑。经过反复查找,定位关键的源码是seahub/seahub/file.py文件

找到782行,在send_file_access_msg(request, repo, path, 'web'),前增加一句:

wopi_dict['action_url']='http://officeonline服务器域名或IP/op/view.aspx?src='+raw_path.replace('xxxx','aa.bb.cc')

解释一下,把原本的action_url变量的内容,替换为office online 服务器默认提供的查询接口,raw_path是待预览文件的绝对url路径(需要上下文安全认证,直接访问是打不开的)。因为我是在内网访问,默认用的ip地址,因此需要把seafile的服务器ip地址替换为office服务器可以解析的域名。

只需要这一行,就可以了。

posted @ 2020-02-14 17:29  swordzj  阅读(3199)  评论(0编辑  收藏  举报