浅谈onlyoffice开发常见问题

一、文件无法打开
1、token不正确,确保token是否正确和是否过期,如果是本地开发,建议直接关掉token
2、浏览器直接下载文件,看看文件是否下载成功
3、如果是本地开发,通过私有ip访问,需要关掉onlyoffice服务的配置

容器里面:/etc/onlyoffice/documentserver/default.json 
#打开配置
"request-filtering-agent" : {
        "allowPrivateIPAddress": true,
        "allowMetaIPAddress": true
},

4、回调服务是否正常,如果回调服务不正常,文件打开也会异常

#示例
// 回调处理函数
app.post('/service/onlyoffice/callback', (req, res) => {
    const callbackData = req.body;
    const savedDir = path.join(__dirname, 'saved_files');
    if (!fs.existsSync(savedDir)) {
        fs.mkdirSync(savedDir, { recursive: true });
    }
    if (!callbackData || !callbackData.status) {
        return res.status(400).send({ error: 'Invalid callback data' });
    }

    const status = callbackData.status;
    const fileUrl = callbackData.url; // 编辑后的文件 URL
    const curKey = callbackData.key; // 文件唯一标识
    const changesurl = callbackData.changesurl; // 文件变化URL
    const history = callbackData.history; // 文件历史记录
    console.log("callbackData:",callbackData ,status);
    console.log("history:",history);
    switch (status) {
        case 1: // 文档正在编辑中
            console.log(`Document ${curKey} is being edited.${status}`);
            break;
        case 2: // 文档已保存
            console.log(`Document ${curKey} has been saved.${status}`);
            downloadAndSaveFile(fileUrl, changesurl, curKey,status);
            break;
        case 3: // 文档已关闭,未保存
            console.log(`Document ${curKey} was closed without saving${status}.`);
            break;
        case 6: // 强制保存
            downloadAndSaveFile(fileUrl, changesurl,curKey,status);
            console.log(`Document ${curKey} was forcefully saved.${status}`);
            break;
        default:
            console.log(`Unhandled status: ${status}`);
    }

    // 响应 ONLYOFFICE 回调
    res.status(200).send({ error: 0 });
});

5、文件编辑过后,并没有进行回调,但是刷新显示还是编辑过后的文件,正常应该是显示未保存的文件

#文档的key最好每次都是最新唯一的,如果是上一次文件的,会加载onlyoffice的文件缓存
 editConfig.value.document.key = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);

6、编辑状态下,加载文件提示已经发生更改,文件无法编辑。
也可以通过document.key来清除这种缓存的情况。

7、关闭文件编辑器后,进入回调比较慢,
注解:打开强制保存,点保存按钮后,回强制进入回调,回调状态值是6,或者修改onlyoffice进入回调的延迟时间, 关闭编辑器进入回调的status 2,回调的服务也可以根据状态值来做回调逻辑处理

进入容器地址 /etc/onlyoffice/documentserver/local.json
{
    "services": {
        "CoAuthoring": {
            "server": {
                "savetimeoutdelay": 1000
            }
        }
    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值