onlyOffice 开发相关 总结
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 开发相关 总结的更多相关文章
- JAVA开发相关
JAVA开发相关1. IntelliJ IDEA开发工具熟练使用2. Maven3. Spring框架(IoC.AOP) 1)数据库相关MyBatis 2)数据库连接池 3)事务.多数据源.跨数据库分 ...
- WinCE及Windows软件开发相关书籍转让
从开始做WinCE开发到现在已经十多年了,最初可以学习和参考的资料并不多,那时候还没有Stack Overflow,Google也还可以正常访问.遇到问题时,一般都在Google Groups的mic ...
- Android应用开发相关下载资源(2015/08/27更新)
Android应用开发相关下载资源 官方终于发布了Android Studio正式版,Android Studio将会成为推荐使用的主要Android开发工具. (1)Android SDK ...
- Andorid Studio 模块化开发相关配置
Andorid Studio 模块化开发相关配置 下面以宿主APP模块和Uer_Module模块为例: 第一步:在项目根目录gradle.properties配置文件中添加如下代码 isNeedUse ...
- MySQL运维开发相关的所有工具
http://www.ruzuojun.com/topic/592.html Percona Toolkit 安装使用 http://cenalulu.github.io/mysql/mysql- ...
- saltstack 开发相关命令记录
SALT API开发相关命令记录. 查看当前的salt key信息salt-key -L 测试被控主机的连通性salt '*' test.ping 远程命令执行测试salt '*' cmd.run ' ...
- Vue项目开发相关问题总结
Vue项目开发相关问题总结 一.创建一个项目(两种方式) 1.通过CLI命令行创建,具体步骤如下: (1)Node 版本要求 Vue CLI 需要 Node.js 8.9 或更高版本 (推荐 8.11 ...
- linux 内核模块开发相关的文章搜集和模块开发过程中的小技巧
最近需要开发一些内核模块,进行探究linux内核的一些特征,现在把一些遇到的比较好的文章和知识点,进行简要记录和备忘: 内核模块开发相关链接: https://www.thegeekstuff.com ...
- 基于云开发开发 Web 应用(三):云开发相关数据调用
介绍 在完成了 UI 界面的实现后,接下来可以开始进行和云开发相关的数据对接.完成数据对接后,应用基础就打好了,接下来的就是发布上线以及一些小的 feature 的加入. 配置 在进行相关的配置调用的 ...
随机推荐
- Beautiful Soup 4.2.0 doc_tag、Name、Attributes、多值属性
找到了bs4的中文文档,对昨天爬虫程序里所涉及的bs4库进行学习.这篇代码涉及到tag.Name.Attributes以及多值属性. ''' 对象的种类 Beautiful Soup将复杂HTML文档 ...
- debian 中的jdk
1 openjdk 2 debian安装java的脚本 3 下载bin自己编译
- Impala Catalog Server StateStore 端口被占 无法启动问题
最新版的Impala时候关闭的时候无法关闭 Catalog Server和StateStore后台进程,导致错误如下: --max_log_size= --minloglevel= --stderrt ...
- [!] The ‘Pods-项目名XXX' target has frameworks with conflicting names:XXX.framework.
在集成网易 即时通讯IM时报如下错误: [!] The ‘Pods-Yepu' target has frameworks with conflicting names: nimsdk.framewo ...
- windows和ubuntu14.04双系统设置默认启动项
首先开机或者重启,在启动项选择菜单处记住win7对应的序号,从上至下的序号从0开始计数,我的win7系统选项处于第5个,那么序号就应该是4,记住后,打开ubuntu系统. 2 按下Ctrl+alt+T ...
- BZOJ 4161 Shlw loves matrixI ——特征多项式
矩阵乘法递推的新姿势. 叉姐论文里有讲到 利用特征多项式进行递推,然后可以做到k^2logn #include <cstdio> #include <cstring> #inc ...
- C\C++ 中的 strcat() 函数 —— 字符串的插入、拼接
转载链接:http://blog.csdn.net/smf0504/article/details/52055971 函数原型 extern char *strcat(char *dest,char ...
- 乘法运算(codevs 3254)
题目描述 Description 编制一个乘法运算的程序. 从键盘读入2个100以内的正整数,进行乘法运算并以竖式输出. 输入描述 Input Description 输入只有一行,是两个用空格隔开的 ...
- C++练习,计算间隔天数
time_t time(time_t *time) 从1970年1月1日到到现在的秒数,如果系统时间不存在,返回1char *ctime(const time_t *time) 返回以:day mon ...
- Laravel 之文件上传
配置文件: config/filesystems.php, 新建存储空间 'uplaods' => [ 'driver' => 'local', 'root' => storage_ ...