要使用 OnlyOffice Document Server 与 PHP 进行集成,您需要遵循以下步骤:
- 安装 OnlyOffice Document Server
首先,您需要在服务器上安装 OnlyOffice Document Server。您可以从官方网站下载并安装它:https://helpcenter.onlyoffice.com/server/docker/document/docker-installation.aspx
- 安装 PHP 和必要的扩展
确保您的服务器上已安装 PHP。接下来,您需要安装 php-zip
和 php-json
扩展。这些扩展允许 PHP 处理 ZIP 文件和 JSON 数据。在 Ubuntu 或 Debian 系统上,您可以使用以下命令安装这些扩展:
sudo apt-get install php-zip php-json
- 创建一个 PHP 脚本来与 OnlyOffice Document Server 进行交互
创建一个名为 onlyoffice.php
的文件,并在其中添加以下内容:
$doc) { // 在这里处理文档,例如将其保存到数据库或执行其他操作 echo "Document processed: " . $doc->url; } // 检查请求方法 if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 获取文档 ID $documentId = $_POST['documentId']; // 获取文档类型 $documentType = $_POST['documentType']; // 获取文档 URL $documentUrl = $documentServerUrl . '/documents/' . $documentId; // 获取文档访问权限 $documentAccess = $_POST['access']; // 创建一个 JSON 请求以获取文档数据 $requestJson = [ 'documentId' => $documentId, 'documentType' => $documentType, 'key' => $apiKey, 'access' => $documentAccess, ]; // 发送请求到 OnlyOffice Document Server $response = file_get_contents($documentServerUrl . '/api/v1/documents/' . $documentId, false, stream_context_create([ 'http' => [ 'header' => "Content-Type: application/json\r\n" . "Authorization: Basic " . base64_encode($apiKey . ":") . "\r\n", 'method' => 'GET', 'content' => json_encode($requestJson), ], ])); // 检查响应状态 if ($response === false) { http_response_code(500); echo "Error: Unable to fetch document data"; } else { $responseData = https://www.yisu.com/ask/json_decode($response, true);'status'] === 'ok') { handleDocument($responseData); } else { http_response_code(500); echo "Error: " . $responseData['message']; } } } else { http_response_code(405); echo "Method Not Allowed"; } ?>
请确保将 $documentServerUrl
变量设置为您的 OnlyOffice Document Server 的实际 URL,并将 $apiKey
变量设置为一个有效的 API 密钥。
- 使用 OnlyOffice Document Server 的 API 发送文档数据
当用户通过 OnlyOffice 编辑文档时,您需要捕获文档数据并将其发送到您在第 3 步中创建的 PHP 脚本。您可以通过在 OnlyOffice 中使用 JavaScript API 来实现这一点。以下是一个简单的示例:
window.docEditor = new DocsAPI.DocEditor('container'); docEditor.load('onlyoffice.php', { "documentId": "myDocument", "documentType": "word", "key": "your_api_key", "access": "edit" });
这将在名为 “container” 的 HTML 元素中加载 OnlyOffice 编辑器,并在用户编辑文档时将文档数据发送到 “onlyoffice.php” 脚本。
现在,当用户完成编辑并保存文档时,您的 PHP 脚本将处理文档数据(如将其保存到数据库或执行其他操作),并返回适当的响应。