cloudreve+onlyoffice集成,实现在cloudreve中调用onlyoffice进行文档预览(cloudreve通过wopi方式调用onlyoffice)
拉取镜像
docker pull onlyoffice/documentserver
使用docker部署onlyoffice(cloudreve通过wopi方式调用onlyoffice)
sudo docker run -d --restart=always --name onlyoffice -p 8080:80 -e JWT_ENABLED=false -e WOPI_ENABLED=true onlyoffice/documentserver
如果使用了 HTTPS,则还需要增加配置:
proxy_set_header X-Forwarded-Proto https;
配置cloudreve并测试文档预览
http://xxx.xxx.xxx.xxx:8080/welcome/view.html?src={$src}&name={$name}
在cloudreve中配置wopi,按下列格式新增即可
http://onlyoffice的ip地址:端口/hosting/discovery
选填(使用 onlyoffice example)
docker exec onlyoffice sudo supervisorctl start ds:example
待定部分
创建一个view.html页面,用于cloudreve调用onlyoffice的api,view.html代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="placeholder"></div> <!-- 下面的注释记得要打开,并修改编辑自己onlyoffice的api.js的路径,一般只需改ip地址即可,专栏编辑无法使用外源引用,所以我这里注释掉 --> <!-- <script type="text/javascript" src="http://192.168.150.150:1080/web-apps/apps/api/documents/api.js"></script> --> <script> function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return decodeURIComponent(r[2]); return null; } //解码url let url = GetQueryString("src") var file= GetQueryString("name") var suffix = file.split('.') suffix=suffix[suffix.length-1] var docEditor = new DocsAPI.DocEditor("placeholder", { "document": { "fileType": suffix, "permissions": { "edit": false, "comment":true, "download":true, "print":true, "fillForms": true, }, "title": file, "url": url, }, "editorConfig":{ "callbackUrl": url, //回调地址,一定要保证docserver可以请求到,否则开不开文件 "lang":"zh-CN", "mode":"view", //编辑模式 edit }, "height": "1080px", // "width": "100%", "type":"desktop", }); </script> </body> </html> 将新建的view.html复制到coludreve的/var/www/onlyoffice/documentserver-example/welcome目录下 复制成功后访问下该网页,显示为空白不提示404则为复制成功