找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

通达OA官网网站
搜索
查看: 606|回复: 17

集成Onlyoffice在线预览和编辑的教程

[复制链接]
已绑定手机

18

主题

42

回帖

170

牛毛

一级牛人

积分
170
发表于 2024-12-28 09:35:14 | 显示全部楼层 |阅读模式 来自 云南省昆明市
集成Onlyoffice在线预览和编辑的教程
重点是利用官方通达编辑器做二开,删除ou_tdoffice目录中文件保留config.php其余全部删除;
意有缺陷,套红签名没有研究,有的水印也不正常,欢迎大神补全
PHP JWT库下载地址
下载后将src 更名为jwt
Onlyoffice的安装参考官网新手建议用宝塔+docker管理器在拉取onlyoffice,注意哈docker国内资源已被禁用啦可参考宝塔教程换docker源
onlyoffice的jwt查看见演示平台
基于 PHP 的 OnlyOffice 编辑器集成示例。下面是你提交的代码的总结和一些基本的说明,这可以帮助更容易地理解这个集成过程。该过程主要分为两个部分:文件的编辑过程和回传(保存)过程。
第一部分:文件编辑
在 PHP 中,第一段代码用于设置 OnlyOffice 编辑器,以便用户可以对文件进行编辑。在这个过程中,以下步骤被执行:
  • 获取和解析参数:从 GET 请求获取相关参数,如附件 ID、附件名称等。
  • 文件处理:

    • 使用辅助函数处理文件 ID 和路径,以便文件可以正确地被加载及编辑。
    • 确定文件类型,根据扩展名决定文件的编辑类别(文档、电子表格、演示文稿或 PDF)。

  • 数据库操作:

    • 查询数据库获取当前文件记录。若记录已存在,更新文件的相关信息和新的 KEY(包含版本号)。若记录不存在,则插入新的文件信息到数据库中。

  • JWT 生成:

    • 使用 JSON Web Token(JWT)库生成配置文档的 TOKEN,以确保安全性和有效性。

  • 编辑器初始化:

    • 将生成的配置传递给 OnlyOffice 编辑器,并显示在用户的浏览器中。


第二部分:文件回传
第二段代码处理回传数据,即用户编辑完文件后,对编辑的内容进行存储:
  • 内容获取:

    • php://input 获取 JSON 格式的请求体,这是通过 OnlyOffice 编辑器回传的内容。如果获取失败则返回“Bad Request”。

  • 读取和解析 JSON 数据:

    • 解析 JSON 数据并检查状态,如果状态为 2,表示编辑完成并准备下载内容。

  • 数据库查询:

    • 根据 NEW_KEY 查询对应的数据库记录,以获得文件的存储路径、文件名及其他相关信息。

  • 版本更新:

    • 在更新记录之前,获取当前的版本号并增加 1,以保证版本的连续性。

  • 文件保存:

    • 使用获取的下载链接保存文件到本地指定路径。同时记录下日志信息以供后续审计使用。

  • 成功返回:

    • 返回 JSON 格式的响应,指示操作的成功与否。


完整代码示例总结
以下是你提供的完整代码的综合总结,帮助更好理解该案例的实现。
index.php` - OnlyOffice 编辑部分onlyoffice_callback.php.php - 文件回传部分结论这段代码展示了如何将 OnlyOffice 集成到 PHP 应用程序中,实现文档的在线编辑和版本控制。用户可以在浏览器中编辑文档,编辑完成后文件会被回传到服务器上,同时更新版本信息,从而实现了文档的版本管理功能。此示例适合需要在线编辑功能的企业和平台。

代码在附件中
通达OA集成Onlyoffice的教程.md (11.12 KB, 下载次数: 8, 售价: 1 牛毛)
已绑定手机

3

主题

10

回帖

15

牛毛

初生牛犊

积分
15
发表于 2024-12-28 22:59:18 | 显示全部楼层 来自 北京市
支持一下!!!!!!!!!!!
已绑定手机

3

主题

10

回帖

15

牛毛

初生牛犊

积分
15
发表于 2024-12-29 18:15:51 | 显示全部楼层 来自 北京市


获取文件的地址没看明白。
//附件路径,注意呀,需要更新NGinx的配置新增一个站点的配置
$documentUrl ="http://127.0.0.1:801/".$MODULE."/".$YM."/".$ATTACH_ID.".".$ATTACHMENT_NAME;


建议:
KEY的获取考虑可用filemtime获的文件的编辑时间。

点评

用时间会出现协同问题,用版本控制法可以解决协同编辑问题  详情 回复 发表于 2025-1-2 09:03
已绑定手机

2

主题

6

回帖

10

牛毛

初生牛犊

积分
10
发表于 2024-12-30 08:14:41 | 显示全部楼层 来自 广东省汕头市
顶一下 这个好用吗
已绑定手机

18

主题

42

回帖

170

牛毛

一级牛人

积分
170
 楼主| 发表于 2025-1-2 09:03:28 | 显示全部楼层 来自 云南省昆明市
plaman 发表于 2024-12-29 18:15
获取文件的地址没看明白。
//附件路径,注意呀,需要更新NGinx的配置新增一个站点的配置$documentUrl ="h ...

用时间会出现协同问题,用版本控制法可以解决协同编辑问题
已绑定手机

18

主题

42

回帖

170

牛毛

一级牛人

积分
170
 楼主| 发表于 2025-1-2 14:49:08 | 显示全部楼层 来自 云南省昆明市
水印问题,换了一个思路处理已经完全解决了以下是代码截图
image.png
已绑定手机

3

主题

10

回帖

15

牛毛

初生牛犊

积分
15
发表于 2025-1-4 21:44:27 | 显示全部楼层 来自 北京市
已经完美集成,感谢指导!
未命名 - 1.jpg

点评

你的能在https上使用不?  详情 回复 发表于 2025-1-8 16:55
已绑定手机

0

主题

20

回帖

9

牛毛

初生牛犊

积分
9
发表于 2025-1-7 11:22:22 | 显示全部楼层 来自 四川省乐山市
好久没来论坛咯,看到好多貌似都对接成功咯!不错不错
已绑定手机

0

主题

1

回帖

1

牛毛

初生牛犊

积分
1
发表于 2025-1-7 20:10:06 | 显示全部楼层 来自 辽宁省葫芦岛市
学习了
已绑定手机

18

主题

42

回帖

170

牛毛

一级牛人

积分
170
 楼主| 发表于 2025-1-8 16:55:21 | 显示全部楼层 来自 云南省昆明市
plaman 发表于 2025-1-4 21:44
已经完美集成,感谢指导!

你的能在https上使用不?

点评

测试了,没问题,可以正常使用  详情 回复 发表于 2025-1-9 19:18
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

咨询电话:400 818 0505 通达OA,国内协同管理软件行业内唯一的央企单位,中国协同OA软件的领跑者,优秀协同办公解决方案供应商

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|由NB5牛论坛提供技术支持NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-2-13 03:57 , Processed in 0.168629 second(s), 51 queries .

Powered by Discuz

Copyright © 2001-2025, 北京通达信科科技有限公司.

快速回复 返回顶部 返回列表