查看: 3856|回复: 3

[Office在线协作] 在线协同乱码

升级   88%

14

主题

16

回帖

464

积分

中级会员

Rank: 3Rank: 3

积分
464
发表于 2023-2-9 13:42:29 | 显示全部楼层 |阅读模式
本帖最后由 webtk 于 2023-2-9 14:57 编辑



一个only office前后捣鼓了快2年。目前文件会出现乱码。群友给出了解决方案,修改类。这个类在哪改啊。
删除文件内的部分内容,造成新文件比源文件小,这个乱码概率为100%复现。

[tr][/tr]
已解决,是类com.x.onlyoffice.assemble.control.jaxrs.onlyoffice.helpers.DocumentManager的downloadToFile方法有bug。该方法对已存在文件的处理,不是先清空原文件的内容,再写入新文件的内容,而是在原文件的基础上,覆盖新文件的内容。当新文件的长度大于等于原文件的长度时,这样处理没有问题。当新文件的长度小于原文件的长度时,最终生成的文件前面部分是新文件的内容,后面部分却是原文件的内容,整个文件是“坏”的,导致前端乱码。





点评回复
[url=]举报[/url]




升级 22%
1
主题
5
帖子
83
积分

积分83
5#
发表于 2022-11-18 12:27:31 | 只看该作者


将类com.x.onlyoffice.assemble.control.jaxrs.onlyoffice.helpers.DocumentManager的downloadToFile方法的代码段:
                        if (!fileObj.exists()) {
                                fileObj.createFile();
                        } else {
                                if (org.apache.commons.vfs2.FileType.FOLDER.equals(fileObj.getType())) {
                                        throw new IOException("Write fail. File '" + directory + "' exists but is a directory");
                                }
                        }
改为:
                        if (!fileObj.exists()) {
                                fileObj.createFile();
                        } else {
                                if (org.apache.commons.vfs2.FileType.FOLDER.equals(fileObj.getType())) {
                                        throw new IOException("Write fail. File '" + directory + "' exists but is a directory");
                                }
                                fileObj.delete();
                                fileObj.createFile();
                        }
即可。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

升级   100%

138

主题

1万

回帖

3万

积分

超级版主

Rank: 8Rank: 8

积分
37365
发表于 2023-2-9 16:55:40 | 显示全部楼层
回复

使用道具 举报

升级   88%

14

主题

16

回帖

464

积分

中级会员

Rank: 3Rank: 3

积分
464
发表于 2023-2-9 19:27:35 来自手机 | 显示全部楼层
不会改。这个是要下在编程软件。重新编译吗?官方修复下吧。不行的话,只能放弃了。
回复

使用道具 举报

升级   100%

0

主题

562

回帖

1960

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1960
发表于 2023-2-10 16:03:48 | 显示全部楼层
在线协作在做页面风格修改,后端统一集成到onlyoffice集成应用中,原先两个程序有重复部分,现在整合在一起,你现在可以安装onlyoffice集成应用试试有没有这个问题
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表
viewthread