
最近我们频繁收到用户反馈:
“文件大小超出了为服务器设置的限制,请联系管理员”
这些问题几乎都不是“文件大小”本身导致的,而是文档在解析和渲染过程中,占用的“实际内存”远远超过文件大小。
很多用户的直觉是:文件 25MB → 运行时也是 25MB。但真实情况并非如此。
.docx 文件实际上是一个 ZIP 压缩包,里面包含:
25MB 只是压缩后的体积,解压后可能达到 100MB ~ 500MB+。
在 ONLYOFFICE 中,浏览器需要:
这一步会极大放大内存占用:
1MB 文档 ≈ 5MB ~ 20MB 内存
因此:25MB 文件 → 几百MB甚至上GB内存
浏览器为了不被拖垮,会限制:
一旦超限,浏览器会主动关闭页面或直接崩溃。
决定文档是否能打开的,是内容复杂度,而不是文件大小。
如果有几十张图片,内存会直接爆炸。
例如 Visio 图、Excel 表、PDF 等。这些对象会被解析或转换,极其消耗内存和 CPU。
一个段落可能包含多层历史版本,结构复杂度呈指数级增长。
例如多层嵌套表格、文本框、自动目录等,会导致排版计算极其复杂。
缺失字体或使用非标准字体,会导致多次重排,性能下降。
提示“文件大小超出限制”,本质是服务端主动拒绝处理,属于保护机制。
本质是浏览器内存撑爆,被强制关闭。
可以通过修改配置来放宽限制。
配置文件路径
/etc/onlyoffice/documentserver/default.json
示例配置
json
{
"inputLimits": [
{
"type": "docx;dotx;docm;dotm",
"zip": {
"uncompressed": "500MB",
"template": "*.xml"
}
},
{
"type": "xlsx;xltx;xlsm;xltm",
"zip": {
"uncompressed": "300MB",
"template": "*.xml"
}
},
{
"type": "pptx;ppsx;potx;pptm;ppsm;potm",
"zip": {
"uncompressed": "500MB",
"template": "*.xml"
}
}
]
}修改后重启服务
bash
supervisorctl restart all或(Docker 环境):
bash
docker restart onlyoffice-documentserver注意事项
推荐从“文档优化”入手:
问题的本质不是“文件有多大”,而是“文件有多复杂”。
如果你的文档:
即使只有 10MB,也可能打不开。
如果你在使用 ONLYOFFICE 过程中遇到类似问题:
不要第一时间怀疑“文件不算大,为什么打不开”,而应该考虑:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。