91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

【Web開發】C#實現用onlyOffice在線編輯Office文檔

admin
2025年5月27日 0:23 本文熱度 403

在C#中實現ONLYOFFICE在線編輯Office文檔需要結合前端頁面嵌入編輯器和后端處理文檔存儲與回調邏輯。以下是基于搜索結果的實現步驟及關鍵代碼示例:

一、環境準備

  1. 部署ONLYOFFICE Document Server

使用Docker快速部署(推薦方式):

docker run -i -t -d -p 9000:80 --restart=always onlyoffice/documentserver

需確保服務器端口開放,并配置JWT_SECRET以增強安全性。

  1. 配置C#開發環境

    • 安裝.NET Framework 4.5+或.NET Core。

    • 下載ONLYOFFICE的C#示例代碼(如MVC或WebForms版本)。


二、核心實現步驟

1. 前端頁面嵌入編輯器

在ASP.NET頁面中通過JavaScript初始化編輯器,需傳遞文檔信息和回調URL:

<!-- 引用ONLYOFFICE API -->

<script src="http://[DocumentServer_IP]:9000/web-apps/apps/api/documents/api.js"></script>


<div id="editor"></div>

<script>

    var docEditor = new DocsAPI.DocEditor("editor", {

        document: {

            fileType: "docx",

            key: "<%= DocumentKey %>", // 唯一標識,每次編輯需更新

            title: "<%= DocumentTitle %>",

            url: "<%= DocumentUrl %>"  // 文檔實際存儲路徑

        },

        documentType: "text",

        editorConfig: {

            mode: "edit", // 模式:edit或view

            callbackUrl: "<%= CallbackUrl %>", // 保存回調接口

            lang: "zh-CN",

            customization: {

                autosave: false

            }

        }

    });

</script>?

參數說明:

  • key:文檔唯一標識,每次保存后需更新以觸發版本變更。

  • callbackUrl:文檔保存后ONLYOFFICE服務器調用的后端接口。

2. 后端處理文檔存儲與回調

(1)文件上傳與下載接口

實現文檔的讀取與存儲邏輯(示例為ASP.NET MVC控制器):

public class DocumentController : Controller

{

    // 獲取文檔內容

    public ActionResult GetFile(string fileId)

    {

        var filePath = Server.MapPath("~/Documents/" + fileId);

        return File(filePath, "application/octet-stream");

    }


    // 保存文檔

    [HttpPost]

    public ActionResult SaveFile(string fileId)

    {

        var filePath = Server.MapPath("~/Documents/" + fileId);

        Request.InputStream.CopyTo(System.IO.File.Create(filePath));

        return Json(new { error = 0 });

    }

}

(2)處理ONLYOFFICE回調

實現callbackUrl接口,驗證JWT并處理保存邏輯:

public class CallbackHandler : IHttpHandler

{

    public void ProcessRequest(HttpContext context)

    {

        var json = new StreamReader(context.Request.InputStream).ReadToEnd();

        dynamic data = JsonConvert.DeserializeObject(json);


        // 驗證JWT簽名

        var jwtSecret = "Your_JWT_Secret";

        var payload = JWT.Decode(data.token.ToString(), jwtSecret);

        dynamic payloadData = JsonConvert.DeserializeObject(payload);


        if (payloadData.status == "must_save")

        {

            var fileUrl = payloadData.url.ToString();

            var newKey = Guid.NewGuid().ToString(); // 生成新key以更新版本

            // 下載并保存文件

            using (var client = new WebClient())

            {

                client.DownloadFile(fileUrl, Server.MapPath("~/Documents/" + newKey + ".docx"));

            }

            // 返回成功響應

            context.Response.Write(JsonConvert.SerializeObject(new { error = 0 }));

        }

    }

}?

關鍵點

  • 使用JWT庫驗證請求合法性,防止未授權訪問。

  • 每次保存后生成新的document.key,確保版本更新。

三、權限與安全配置

  1. 權限管理
    結合ASP.NET Identity或自定義鑒權邏輯,控制用戶對文檔的讀寫權限。

  2. JWT安全配置
    在ONLYOFFICE啟動時設置JWT_SECRET,并在后端驗證:

docker run ... -e JWT_SECRET=your_secret_key ...

后端驗證示例:

var isValid = JWT.Validate(token, jwtSecret);

if (!isValid) throw new SecurityException("Invalid token");

四、完整示例與調試

  1. 參考官方示例
    下載ONLYOFFICE提供的C#示例代碼,修改settings.config中的文檔服務器地址和存儲路徑。

  2. 常見問題排查

    • 文檔無法保存:檢查callbackUrl是否可訪問,確保返回{ "error": 0 }

    • 中文亂碼:在Docker中掛載中文字體目錄。

五、擴展功能

  1. 協同編輯
    通過mode: "edit"和實時WebSocket通信支持多人協作。

  2. 歷史版本
    結合數據庫記錄document.key與文件版本,實現版本回溯。

  3. 格式轉換
    調用ONLYOFFICE API將文檔導出為PDF或其他格式。

實現效果:用戶可通過瀏覽器直接編輯Word/Excel/PPT文檔,編輯內容自動保存至服務器,支持多人實時協作。通過上述代碼和配置,可快速集成到現有OA或文檔管理系統中。

參考來源:ONLYOFFICE官方文檔、Docker部署指南及開發者社區示例。


該文章在 2025/5/27 11:51:21 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 日韩国产传媒 | 精品国产自在在线 | 中文字幕日韩专区 | 91视频精品久 | 欧美自拍无毒不卡 | 日韩aⅴ在线观看 | 成人伊人222| 99热福利导航| 91人成亚 | 日韩国产欧美视频 | 91福利在线导航 | 日本成年在线网站 | 午夜影院线4 | 国产亚洲视 | 乱公和我做爽死我了 | 91天天| 三年片在线 | 成人午夜三 | 国产精品大全 | 国内综合网| 国产亚洲第一页电影 | 91九色蝌蚪熟女 | 日韩高清在线亚洲 | 欧美一区视频在线 | 国产毛多水多做爰 | 成人激情电影 | 韩剧tv| 国产欧美日韩网站 | 国产疯狂露脸对白 | 区二区导航 | 91视频九色萌白 | 国产精品一区12p | 区二区三区不卡 | 精品国精品国产自 | 国产普通| 成人免费高清视频 | 欧美综合在线视频 | 国产乱视频伦在线 | 伦理片一区 | 欧美午夜福利在 | 日韩女优一区视频 |