我已经在Windows上安装了Windows版本OnlyOffice 文档服务器,我想要集成到jeecgboot前后端分离的项目,前端用的是layuiAdmin,我该怎么把OnlyOffice 集成上去,可以说详细点吗?
时间: 2023-11-27 13:53:04 浏览: 105
首先,你需要在你的 layuiAdmin 前端项目中添加Office 的 JavaScript SDK。可以在 OnlyOffice 官下载最新版本的 SDK,然后将其添加到你的前端项目中。
接下来,你需要在 jeecgboot 后端项目中进行一些配置。具体步骤如下:
1. 在 jeecgboot 项目中创建一个名为 "onlyoffice" 的文件夹,用于存放 OnlyOffice 相关的文件。
2. 下载 OnlyOffice 文档服务器的 Docker 镜像。你可以在 OnlyOffice 官网找到 Docker 镜像的下载链接。
3. 使用 Docker 运行 OnlyOffice 文档服务器。你可以使用以下命令在本地运行 OnlyOffice 文档服务器:
```
docker run -i -t -d -p 80:80 onlyoffice/documentserver
```
4. 修改 jeecgboot 的配置文件,以便允许 OnlyOffice 访问 jeecgboot 的 API。在 application.yml 文件中添加以下配置:
```
cors:
allowed-origins: "*"
allowed-methods: "*"
allowed-headers: "*"
allow-credentials: true
```
5. 创建一个名为 "OnlyOfficeController" 的 Java 类,用于处理与 OnlyOffice 相关的请求。在该类中添加以下方法:
```
@GetMapping("/onlyoffice/config")
public Map<String, Object> getConfig() {
String serverUrl = "http://localhost:80";
String secret = "mysecret";
String filePath = "/path/to/my/document.docx";
Map<String, Object> config = new HashMap<>();
config.put("document", new HashMap<>());
config.put("documentType", "text");
config.put("editorConfig", new HashMap<>());
config.put("token", OnlyOfficeUtils.generateToken(serverUrl, secret, filePath));
return config;
}
```
在该方法中,你需要替换 "serverUrl"、"secret" 和 "filePath" 为你自己的值。这些值可以在 OnlyOffice 文档服务器中找到。
6. 在 layuiAdmin 前端项目中添加一个名为 "onlyoffice.html" 的页面。在该页面中添加以下代码:
```
<div id="placeholder"></div>
<script src="onlyoffice/sdk.js"></script>
<script>
var docEditor = new DocsAPI.DocEditor("placeholder", {
"document": {
"fileType": "docx",
"url": "/api/onlyoffice/config",
"key": "mysecret"
}
});
</script>
```
在该代码中,你需要修改 "url" 和 "key" 的值,使其与你的 OnlyOffice 配置文件中的值匹配。
7. 在 layuiAdmin 前端项目的路由配置中添加一个名为 "onlyoffice" 的路由,将其指向刚才创建的 "onlyoffice.html" 页面。
```
{
path: '/onlyoffice',
name: 'OnlyOffice',
component: () => import('@/views/onlyoffice.html')
}
```
现在,你已经完成了将 OnlyOffice 集成到 jeecgboot 前后端分离项目的步骤。你可以访问前端页面,打开 OnlyOffice 编辑器,编辑任何文档并保存到 jeecgboot 后端项目中。
阅读全文