onlyOffice 服务端 客户端 相关开发整理


  • 功能:

  • 所有客户端都可用

  • 云端部署服务

  • 查看 预览 doc ppt excel

  • 编辑

  • 权限控制

开发技术准备
  • 用户服务器端 提供保存接口

  • 用户浏览器端 提供生成文件 key 标示(刷新后重新生成)

安装server 端
docker pull onlyoffice/documentserver

doc:
ports:
- 8686:80/tcp
tty: true
image: onlyoffice/documentserver
volumes:
- /home/www/DocumentServer/logs:/var/log/onlyoffice
- /home/www/DocumentServer/data:/var/www/onlyoffice/Data
- /home/www/DocumentServer/onlyoffice:/var/lib/onlyoffice
- /home/www/DocumentServer/postgresql:/var/lib/postgresql
stdin_open: true
应用端

注意相关参数

  • fileType 文件类型

  • key 标示编辑的唯一性 做多人编辑文件时 这个参数要一样。 通常这个值是随机生成 因为打开文件后文件会在documentServer 端 记录此文件 该值用来标示编辑文件。

  • title

  • url 文件的具体路劲

    • callbackUrl 文件关闭后回调路劲 这个用来保存文件用的 文件编辑保存后 当你关闭窗口后 server端会请求把你在服务器上的编辑提交到这个路劲 ,所以这个路劲的代码 一般就是上传保存 ;

documentType 文件编辑类型 根据文件的类型 在客户端用 不通的编辑器来编辑文件 主要三种 文档类 text 表格类 ppt 类

<!DOCTYPE html>
<html style="height: 100%;">
<head>
<title>ONLYOFFICE Api Documentation</title>
</head>
<body style="height: 100%; margin: 0;">
<div id="placeholder" style="height: 100%"></div>
<script type="text/javascript" src="http://documentserver/web-apps/apps/api/documents/api.js"></script> <script type="text/javascript"> window.docEditor = new DocsAPI.DocEditor("placeholder",
{
"document": {
"fileType": "docx",
"key": "E7FAFC9C22A8",
"title": "Example Document Title.docx",
"url": "http://example.com/url-to-example-document.docx"
},
"documentType": "text",
"editorConfig": {
"callbackUrl": "http://example.com/url-to-callback.ashx",
},
"height": "100%",
"width": "100%"
}); </script>
</body>
</html>
修改后保存文件的回调代码
  • 参考

之前保存问题折腾了两天 其实很简单 保存后回调 上传回去 上传回去的路劲和 打开文件的路劲一样;

/**
* 保存文件
* @return [type] [description]
*/
public function saveFile()
{ $path_for_save=$this->geturlpath($_GET['savefile']);// 读取文件的路劲 文件名称 if (($body_stream = file_get_contents("php://input"))===FALSE){
echo "Bad Request";
} $data = json_decode($body_stream, TRUE); if ($data["status"] == 2){
$downloadUri = $data["url"]; if (($new_data = file_get_contents($downloadUri))===FALSE){
echo "Bad Response";
} else {
file_put_contents("newfile.txt", $downloadUri." \n", FILE_APPEND); file_put_contents($path_for_save, $new_data, LOCK_EX);
}
}
echo "{\"error\":0}";
}
中文字体问题

拷贝中文字体到 容器的 /usr/shera/fonts/ 下 重启 容器下运行 documentserver-generate-allfonts.sh

参考


onlyOffice 开发相关 总结的更多相关文章

  1. JAVA开发相关

    JAVA开发相关1. IntelliJ IDEA开发工具熟练使用2. Maven3. Spring框架(IoC.AOP) 1)数据库相关MyBatis 2)数据库连接池 3)事务.多数据源.跨数据库分 ...

  2. WinCE及Windows软件开发相关书籍转让

    从开始做WinCE开发到现在已经十多年了,最初可以学习和参考的资料并不多,那时候还没有Stack Overflow,Google也还可以正常访问.遇到问题时,一般都在Google Groups的mic ...

  3. Android应用开发相关下载资源(2015/08/27更新)

    Android应用开发相关下载资源   官方终于发布了Android Studio正式版,Android Studio将会成为推荐使用的主要Android开发工具.   (1)Android SDK ...

  4. Andorid Studio 模块化开发相关配置

    Andorid Studio 模块化开发相关配置 下面以宿主APP模块和Uer_Module模块为例: 第一步:在项目根目录gradle.properties配置文件中添加如下代码 isNeedUse ...

  5. MySQL运维开发相关的所有工具

    http://www.ruzuojun.com/topic/592.html   Percona Toolkit 安装使用 http://cenalulu.github.io/mysql/mysql- ...

  6. saltstack 开发相关命令记录

    SALT API开发相关命令记录. 查看当前的salt key信息salt-key -L 测试被控主机的连通性salt '*' test.ping 远程命令执行测试salt '*' cmd.run ' ...

  7. Vue项目开发相关问题总结

    Vue项目开发相关问题总结 一.创建一个项目(两种方式) 1.通过CLI命令行创建,具体步骤如下: (1)Node 版本要求 Vue CLI 需要 Node.js 8.9 或更高版本 (推荐 8.11 ...

  8. linux 内核模块开发相关的文章搜集和模块开发过程中的小技巧

    最近需要开发一些内核模块,进行探究linux内核的一些特征,现在把一些遇到的比较好的文章和知识点,进行简要记录和备忘: 内核模块开发相关链接: https://www.thegeekstuff.com ...

  9. 基于云开发开发 Web 应用(三):云开发相关数据调用

    介绍 在完成了 UI 界面的实现后,接下来可以开始进行和云开发相关的数据对接.完成数据对接后,应用基础就打好了,接下来的就是发布上线以及一些小的 feature 的加入. 配置 在进行相关的配置调用的 ...

随机推荐

  1. PAT Basic 1041

    1041 考试座位号 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码 ...

  2. <题解>洛谷P3385 【模板】负环

    题目链接 判断一张图中是否存在关于顶点1的负环: 可以用SPFA跑一遍,存在负环的情况就是点进队大于n次 因为在存在负环的情况下,SPFA会越跑越小,跑进死循环 在最差的情况下,存在的负环长度是“n+ ...

  3. python3--__radd__处理右侧加法

    __radd__处理右侧加法 从严格意义上来讲,前边例子中出现的__add__方法并不支持+运算符右侧使用实例对象.要实现这类表达式,而支持可互换的运算符,可以一并编写__radd__方法.+右侧的对 ...

  4. pytorch遇到的问题:RuntimeError: randperm is only implemented for CPU

    由此,我们找到sample.py,第51行如下图修改

  5. Windows同步阿里云时间

    Ctrl+R打开cmd命令框 输入:gpedit.msc 计算机配置”—“管理模版”—“系统”—“Windows 时间服务”—“时间提供程序”—“配置 Windows NTP 客户端 双击打开配置 W ...

  6. 【Luogu】P2051中国象棋(DP)

    题目链接 去看STDCALL的题解吧 #include<cstdio> #include<cctype> #define mod 9999973 inline long lon ...

  7. 【Luogu】P1896互不侵犯King(状压DP)

    题目链接 真是可恶,被数据范围坑了一把.想要一遍AC的希望破灭了…… 以后大家在做状压DP的时候一定要开long long…… 设f[i][j][k]表示考虑前i行,总共放了j个King,第i行状态为 ...

  8. 2013   Dhaka 区域赛

    A.uva 12709 Falling ANTS 首先按照H排序,然后按照L*H*W排序 #include<iostream> #include<cstdio> #includ ...

  9. 基于SEDA的异步框架设计与实现

    基于SEDA的异步框架设计与实现 二.为什么使用SEDA 目前,面对并发环境,主流互联网服务器编程模型有两种:多线程模型以及事件驱动模型.但是这两个模型都不足以解决这个问题.我们来首先看一下这两种编程 ...

  10. 连通 OR 不连通(NOJ 1044)

    比赛描述 给定一个无向图,一共n个点,请编写一个程序实现两种操作: D x y 从原图中删除连接x,y节点的边. Q x y 询问x,y节点是否连通 输入 第一行两个数n,m(5<=n<= ...