当前位置: 首页 > news >正文

上海优质建筑设计网上海网站优化

上海优质建筑设计网,上海网站优化,平面设计coreldraw,微网站搭建的步骤和技巧文章目录 前言一、vue ts1. 安装依赖2. onlyoffice组件实现(待优化)3. 使用组件4. 我的配置文件 二、springboot 回调代码1. 本地存储 三、效果展示踩坑总结问题1问题2 前言 对接onlyoffice,实现文档的预览和在线编辑功能。 一、vue ts …

文章目录

  • 前言
  • 一、vue + ts
    • 1. 安装依赖
    • 2. onlyoffice组件实现(待优化)
    • 3. 使用组件
    • 4. 我的配置文件
  • 二、springboot 回调代码
    • 1. 本地存储
  • 三、效果展示
  • 踩坑总结
    • 问题1
    • 问题2


前言

对接onlyoffice,实现文档的预览和在线编辑功能。

一、vue + ts

1. 安装依赖

npm install --save @onlyoffice/文档-editor-vue
# or
yarn add @onlyoffice/document-editor-vue

2. onlyoffice组件实现(待优化)

<template><DocumentEditorid="docEditor":documentServerUrl="documentServerUrl":config="config"/>
</template><script lang="ts" setup>import {inject} from "vue";
import {DocumentEditor} from "@onlyoffice/document-editor-vue";
import {getGlobalConfig} from "@/utils/globalConfig";
//从配置文件读取onlyoffice配置
const documentServerUrl = getGlobalConfig().onlyoffice.documentServerUrl
const editorConfig = getGlobalConfig().onlyoffice.editorConfig
editorConfig.callbackUrl += inject<string>("fileId")let config = {document: inject<any>("document"),documentType: inject<string>("documentType"),editorConfig: editorConfig,"height": "820px","width": "100%",
}</script>

3. 使用组件

<template><div class="container_div"><back-history msg="office"/><only-office /></div>
</template><script setup lang="ts">
import onlyOffice from '../../components/onlyOffice.vue'
import {provide, reactive, ref} from "vue";
import BackHistory from "@/components/BackHistory.vue";
import Guid from 'guid'// 参数从附件信息拿
let fileId = "ff80808189cf52780189d2af01450005"
const document = reactive<any>({fileType: "docx",key: Guid.raw(),title: "房屋租赁协议免费模板.doc",url: "http://172.17.10.139:8099/mnt/upload/7fdwy5ztpzmdbs9qmz9zjcaadyhleqcl/client/2023-08-08/56425786c9204642a3dfce5b20024135.doc"
})const documentType = handleDocType('docx')provide('document', document)
provide('documentType', documentType)
provide('fileId', fileId)function handleDocType(fileType) {let docType = '';let fileTypesDoc = ['doc', 'docm', 'docx', 'dot', 'dotm', 'dotx', 'epub', 'fodt', 'htm', 'html', 'mht', 'odt', 'ott', 'pdf', 'rtf', 'txt', 'djvu', 'xps'];let fileTypesCsv = ['csv', 'fods', 'ods', 'ots', 'xls', 'xlsm', 'xlsx', 'xlt', 'xltm', 'xltx'];let fileTypesPPt = ['fodp', 'odp', 'otp', 'pot', 'potm', 'potx', 'pps', 'ppsm', 'ppsx', 'ppt', 'pptm', 'pptx'];if (fileTypesDoc.includes(fileType)) {docType = 'word'}if (fileTypesCsv.includes(fileType)) {docType = 'cell'}if (fileTypesPPt.includes(fileType)) {docType = 'slide'}return docType;
}</script>

4. 我的配置文件

{"onlyoffice": {"//documentServerUrl": "onlyoffice 服务地址","documentServerUrl": "http://172.17.10.136/","editorConfig": {"callbackUrl": "http://172.17.10.139:8095/api/gsdss/file/v1/onlyoffice/save?fileId=","lang": "zh-CN","customization": {"features": {"spellcheck": {"mode": false,"change": true}}}}}
}

二、springboot 回调代码

1. 本地存储

        /*** onlyOfficeCallBack*/@ApiOperationSupport(order = 10)@PostMapping(value = "/v1/onlyoffice/save")public String onlyOfficeCallBack(String fileId, HttpServletRequest request, HttpServletResponse response) {return service.onlyOfficeCallBack(request, response, fileId);}@Overridepublic String onlyOfficeCallBack(HttpServletRequest request, HttpServletResponse response, String fileId) {Scanner scanner;try {scanner = new Scanner(request.getInputStream()).useDelimiter("\\A");String body = scanner.hasNext() ? scanner.next() : "";OfficeFileResp jsonObj = JsonUtil.of(body, OfficeFileResp.class);if (jsonObj.getStatus() == 2) {String downloadUri = jsonObj.getUrl();URL url = new URL(downloadUri);HttpURLConnection connection = (java.net.HttpURLConnection) url.openConnection();InputStream stream = connection.getInputStream();//查询附件信息,以获取附件存储路径AttachmentPO po = findById(fileId);File savedFile = new File(po.getPath());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();}return "{\"error\":0}";} catch (IOException e) {throw new BusinessException("onlyOffice 保存回调失败", e);}}

三、效果展示

在这里插入图片描述
修改离开当前页面后会自动触发保存,大约5秒后下载文件,文件已经是最新。

踩坑总结

问题1

The document could not be saved. Please check connection settings or
contact your administratorWhen you click the ‘Ok’ button, you will be
prompted to download the document.
(这份文件无法保存。请检查连接设置或联系您的管理员当你点击“OK“按钮,系统将提示您下载文档。)

回调接口不通导致,callbackUrl必须是onlyoffice所在服务器可访问的接口地址,可以进入docker镜像内部查看onlyoffice日志就会有所发现。

docker exec -it 【镜像id】/bin/bashtail -f /var/log/onlyoffice/documentserver/docservice/out.log-20230805

Error: connect ECONNREFUSED 127.0.0.1:8194
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
[2023-08-07T00:57:50.813] [ERROR] nodeJS - postData error: docId = fc5d1b8f6211403fa8788661007ccd42;url = https://localhost:8194/api/gsdss/file/v1/onlyoffice/save;data = {“key”:“fc5d1b8f6211403fa8788661007ccd42”,“status”:1,“users”:[“uid-1691118844328”],“actions”:[{“type”:1,“userid”:“uid-1691118844328”}]}

问题2

文件版本已更改(The file version has been changed)

document.key 每次编辑和保存文档时,都必须重新生成,目前采用的guid,但是没有捕获编辑后保存的事件去改变,而是每次加载都用新的key

有价值的参考:

  1. https://www.onlyoffice.org.cn/guide/parameters.html
  2. https://blog.csdn.net/qq_43548590/article/details/129948103
  3. https://www.jianshu.com/p/2d4f977ffeac
  4. https://api.onlyoffice.com/editors/config/
  5. https://devpress.csdn.net/viewdesign/64084b4b986c660f3cf917ba.html

在这里插入图片描述

http://www.dinnco.com/news/60537.html

相关文章:

  • 做多语言网站教程seo技术软件
  • 有什么做礼品的卖家网站简单的网页设计源代码
  • 青岛cms建站系统软文广告发布平台
  • 望都网站建设搜索引擎营销推广
  • 男孩做网站市场营销互联网营销
  • 网站鼠标移上去显示层百度问答下载安装
  • 大型网站建设济南兴田德润o团队怎么样守游网络推广平台
  • 自助建站软件排行榜网站快速排名推荐
  • 莱芜网站优化平台网站优化推广公司排名
  • 用html5做网站百度经验搜索引擎营销的案例
  • 公众号平台官网注册深圳抖音seo
  • 站长工具网站备案查询绍兴seo推广
  • 定制型网站 成功案例百度收录在线提交
  • 网站建设策划解决方案kol营销
  • 男女上做床全播放网站国内免费建站平台
  • nodejs可以做网站吗哪里做网络推广
  • 企业网站排名要怎么做课程培训
  • 开源零代码平台淄博网站制作优化
  • ps怎么做网站首页网络舆情监测与研判
  • 阳谷网站建设优化大师app下载
  • 网站制作哈尔滨黄页88
  • 做厂房出租有那些推广网站今日国际新闻最新消息十条
  • 网站的领券商城怎么做女生学电子商务好吗
  • 做网站成都广告推广免费平台
  • 汕头市建设局造价信息网站企业网站制作费用
  • 一个主机一个域名做网站做企业推广的公司
  • 网站建设方案书简单贵阳搜索引擎排名推广
  • 阿里云 做网站 百度开放云专业seo排名优化费用
  • 网站专题页直通车关键词怎么选 选几个
  • 电力公司在哪个网站做推广最好网站快速收录的方法