onlyoffice服务在线编辑文档保存解析

编辑历史:

2018.6.28 小赖 文档初始化

最近使用onlyoffice的document服务,做office文档在线编辑与查看的功能;这篇文章主要帮助大家可以在线文档的编辑回调,希望会对大家有所帮助。

1.开发前提

搭建onlyoffice document服务

documentserver代表服务器的域名或者ip+port

2.测试+解释onlyoffice的config

官方给的查看word文档(docx)的config

window.docEditor = new DocsAPI.DocEditor("placeholder",

{

"document": {

"fileType": "docx",

"key": "E7FAFC9C22A8",

"title": "Example Document Title.docx",

"url": "https://example.com/url-to-example-document.docx"

},

"documentType": "text",

"editorConfig": {

"callbackUrl": "https://example.com/url-to-callback.ashx",

},

"height": "100%",

"width": "100%"

});

名字

描述

类型

例子

fileType

定义源查看或编辑文档的文件类型

String

“docx”

key

定义服务用于文档识别的唯一文档标识符。 如果发送已知密钥,文档将从缓存中获取。 每次文档被编辑和保存时,都必须重新生成密钥。 文档url可以用作密钥,但不包含特殊字符,长度限制为20个符号。(注意如果秘钥值不更换那么看到的文档还是最先加载的缓存文档)

String

"Khirz6zTPdfd7"

title

为查看或编辑的文档定义所需的文件名,当文档被下载时它也将被用作文件名。

String

"testTitle.docx"

height :页面高度

width :页面宽度

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

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

3.修改后保存文件的回调代码

保存问题折腾了一阵,其实很简单——

我们在config配置了callbackUrl,文档加载时会调用这个接口,此时status = 1,我们给onlyoffice的服务返回{"error":"0"}的信息,这样onlyoffice会认为回调接口是没问题的,这样就可以在线编辑文档了,否则的话会弹出窗口说明

The document could not be saved. Please check connection settings or contact your administrator.

When you click the 'OK' button, you will be prompted to download the document.

Find more information about connecting Document Server

当我们关闭编辑窗口后,十秒钟左右onlyoffice会将它存储的我们的编辑后的文件,,此时status = 2,通过request发给我们,我们需要做的就是接收到文件然后回写该文件。

注意:1.回调接口中要给唯一标识,让程序知道要回写的文件;2.post接口

@RequestMapping(value = "/docx/save",

method = RequestMethod.POST,

produces = "application/json;charset=UTF-8")

@ResponseBody

public void saveWord(HttpServletRequest request, HttpServletResponse response) {

try {

PrintWriter writer = response.getWriter();

String body = "";

try

{

Scanner scanner = new Scanner(request.getInputStream());

scanner.useDelimiter("\\A");

body = scanner.hasNext() ? scanner.next() : "";

scanner.close();

}

catch (Exception ex)

{

writer.write("get request.getInputStream error:" + ex.getMessage());

return;

}

if (body.isEmpty())

{

writer.write("empty request.getInputStream");

return;

}

JSONObject jsonObj = JSON.parseObject(body);

int status = (Integer) jsonObj.get("status");

int saved = 0;

if(status == 2 || status == 3) //MustSave, Corrupted

{

String downloadUri = (String) jsonObj.get("url");

try

{

URL url = new URL(downloadUri);

java.net.HttpURLConnection connection = (java.net.HttpURLConnection) url.openConnection();

InputStream stream = connection.getInputStream();

if (stream == null)

{

throw new Exception("Stream is null");

}

String path = request.getParameter("path");

File savedFile = new File(upload_file_path+"/"+path);

try (FileOutputStream out = new FileOutputStream(savedFile))

{

int read;

final byte[] bytes = new byte[1024];

while ((read = stream.read(bytes)) != -1)

{

out.write(bytes, 0, read);

}

out.flush();

}

connection.disconnect();

}

catch (Exception ex)

{

saved = 1;

ex.printStackTrace();

}

}writer.write("{\"error\":" + saved + "}");

} catch (IOException e) {

writer.write("{\"error\":"-1"}");e.printStackTrace();

}

}

onlyoffice 自动保存_onlyoffice服务在线编辑文档保存解析相关推荐

  1. C# 10分钟入门基于WebOffice实现在线编辑文档,实时保存到服务器(所有office,兼容WPS)

    今天,他来了(weboffice在线编辑文档). 上次写了一个在线预览的博,当然,效果并不是太理想,但是紧急解决了当时的问题. 后来,小编重新查找资料,求助大牛,终于使用新的方式替换了之前的low方法 ...

  2. 多人在线编辑文档 开发_字节跳动全资收购 “幕布”,与腾讯阿里竞逐在线文档市场...

    (图片来源:全景图片) 经济观察网 记者 任晓宁 3月29日,字节跳动全资收购在线文档工具"幕布"消息爆出,幕布创始人王旭向媒体证实了这一消息.天眼查数据显示,张一鸣是幕布的运营主 ...

  3. SaaS产品你知道哪些?盘点几款在线编辑文档工具

    关于SaaS产品云端office/在线编辑文档工具/多人在线文档工具你知道哪些? 随着用户办公.学习需求的日益丰富,产品功能演化也在不断加速.目前,传统的office软件已经不能满足人们云处理.多人协 ...

  4. 工具 左侧服务列表_协作办公时代,在线编辑文档工具,安排!

    小组合作的工作,如果能够在线编辑就方便多了,小伙伴们有没有这样想过呢?今天叔白就给大家介绍一款能够在线编辑文档的工具,帮助大家提高工作效率,还想说一句,阿里出品的工具,真香! 语雀 「语雀」是一个文档 ...

  5. 【Quip】多人协作在线编辑文档

    1.Quip多人协作在线编辑文档 https://shimo.im/

  6. 多人在线编辑文档 开发_太方便了,支持多人同时编辑,电脑和手机端实时同步保存...

    平时很多小伙伴都有编辑文档的需求,而且有时需要分工合作,将它们发送给自己的朋友或者同事等等,多人一起才能完成一项任务.除了互相来回发送显得不方便外,只能用手机或电脑单一的编辑,不能随时随地操作也很影响 ...

  7. 多人在线编辑文档 开发_腾讯文档,支持多人实时在线协同编辑

    多年前,在港资公司工作需要多人协同编辑文档,用的是VPN+Google Docs,很早就体验过多人在线协同办公的便利,那时候,APP.微信,甚至智能手机,都没普及. 现在,就算没有VPN,用不了Goo ...

  8. 多人在线编辑文档 开发_十个在线小工具,科研amp;工作必备神器!

    有的时候,做一些网页小工具比软件客户端要好用,客户端有时候出现问题,罢工不能用,而且有的软件还非常占用内存,安装起来可能要好几个小时,所以,小编今天给大家推荐了这些在线版的小工具,非常实用,想用就打开 ...

  9. 多人同步在线编辑文档(onlyoffice)服务器部署-测试

    我装的是社区服务器 + 文件服务器(这样才能实现多人在线同时编辑文件) 这个是我虚拟机的配置,onlyoffice 官网建议 官方网址 :https://helpcenter.onlyoffice.c ...

  10. 多人同步在线编辑文档onlyoffice服务器部署

    在网上找了好多文章,都没有搭建出来,就页面一直卡在那里加载,实际是因为少了东西,本文详细写出了搭建过程.在docker中实现 文章目录 系统要求 其他要求 安装Docker 启动容器的准备工作 安装 ...

最新文章

  1. 22. 一个题来探查对 字符串,指针,数组三方面的关联使用方面的概念是否清晰,分析下面三个printf打印什么?...
  2. Coherence-Enhancing Shock Filters(附源码)
  3. pandas教程:pandas主要功能详解
  4. mysql set类型 查询,MYSQL SET字段类型怎么查询
  5. premiere安装失败解决办法
  6. ubuntu设置vim语法高亮显示和自动缩进
  7. 2017年WorkApplication牛客网线上机试题
  8. 【QT源码】系列01
  9. ai人工智能_古典AI的简要史前
  10. 汉澳sinox领先特性助其成为领先的操作系统
  11. Android入门项目(校园软件)
  12. CISSP考试经验分享
  13. 一元线性回归(最小二乘法)
  14. 【01】国内外git托管平台(总结by魔芋)
  15. wordpress不同角色显示不同的菜单栏
  16. 服务器版本的ansys证书错误,关于ANSYS Workbench 出现证书错误的解决办法
  17. flex布局练习题,面试必备,持续更新建议收藏~
  18. Java编程环境搭建
  19. 什么是基本表?什么是视图?两者的联系和区别是什么?视图有哪些优点?
  20. 1367 查找二叉树(tree_a)

热门文章

  1. 通过两个列表构建字典_我在两个月内以99美元的价格构建了一个电子商务网站!
  2. Graph Convolutional Tracking
  3. XXE漏洞(XML外部实体注入)
  4. 一个例子说明贝叶斯定理
  5. 浅谈SSD,eMMC,UFS
  6. Gungho重点工作事项督办督查跟踪管理方案
  7. Java方法--汉字数字转阿拉伯数字
  8. web项目登录报错:HTTP Status 500 - Error instantiating servlet class com.gxuwz.medical.web.servlet.LoginSer
  9. 世界上都有哪些常用的聊天软件?
  10. 玄秘塔碑-唐代柳公权创作书法作品