日韩欧美人妻无码精品白浆,夜夜嗨AV免费入口,国产欧美官网在线看,高校回应聋哑女生因长相完美被质疑

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

【W(wǎng)eb開發(fā)】C#實現(xiàn)用onlyOffice在線編輯Office文檔

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

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

一、環(huán)境準(zhǔn)備

  1. 部署ONLYOFFICE Document Server

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

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

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

  1. 配置C#開發(fā)環(huán)境

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

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


二、核心實現(xiàn)步驟

1. 前端頁面嵌入編輯器

在ASP.NET頁面中通過JavaScript初始化編輯器,需傳遞文檔信息和回調(diào)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 %>", // 唯一標(biāo)識,每次編輯需更新

            title: "<%= DocumentTitle %>",

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

        },

        documentType: "text",

        editorConfig: {

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

            callbackUrl: "<%= CallbackUrl %>", // 保存回調(diào)接口

            lang: "zh-CN",

            customization: {

                autosave: false

            }

        }

    });

</script>?

參數(shù)說明:

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

  • callbackUrl:文檔保存后ONLYOFFICE服務(wù)器調(diào)用的后端接口。

2. 后端處理文檔存儲與回調(diào)

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

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

public class DocumentController : Controller

{

    // 獲取文檔內(nèi)容

    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回調(diào)

實現(xiàn)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"));

            }

            // 返回成功響應(yīng)

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

        }

    }

}?

關(guān)鍵點

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

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

三、權(quán)限與安全配置

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

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

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

后端驗證示例:

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

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

四、完整示例與調(diào)試

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

  2. 常見問題排查

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

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

五、擴展功能

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

  2. 歷史版本
    結(jié)合數(shù)據(jù)庫記錄document.key與文件版本,實現(xiàn)版本回溯。

  3. 格式轉(zhuǎn)換
    調(diào)用ONLYOFFICE API將文檔導(dǎo)出為PDF或其他格式。

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

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


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