|
本帖最后由 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]
| | |
积分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
|