You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Liferay 6.2含文件上传的HTML表单突然失效,求排查建议

可能的故障原因及排查方向

结合你提供的错误日志和故障现象,以下是几个重点排查方向:

1. 服务器临时存储资源耗尽

Caused by: org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly

这个错误核心是multipart请求流被提前截断,最常见的触发原因:

  • 磁盘空间不足:Liferay依赖Commons FileUpload处理文件上传,需要将上传的文件片段临时写入磁盘目录(默认是应用服务器的temp目录,比如Tomcat的CATALINA_BASE/temp),如果该目录所在磁盘满了,写入失败会直接导致请求流终止,后续表单参数无法被解析。立刻检查对应磁盘的剩余空间。
  • 临时目录权限变更:如果服务器运维操作修改了temp目录的读写权限,导致Liferay进程无法写入,也会触发同样的异常。检查目录的所有者和权限设置。

2. 文件上传大小限制被意外调整

虽然代码未修改,但全局配置可能被变更:

  • Liferay系统配置:检查控制面板中系统设置 > 文件上传的最大文件大小限制,如果设置过小,用户上传的文件超过限制时,请求会被截断,导致表单参数丢失。
  • 应用服务器配置:Tomcat等服务器的web.xml中multipart-config的max-file-size、max-request-size参数,或者Spring的CommonsPortletMultipartResolver配置的maxUploadSize属性,是否被意外修改为更小的值。

3. Apache Tika解析异常的连锁影响

10:00:09,095 WARN  [http-bio-8080-exec-272][FileImpl:422] Unable to extract text from Scan4.JPG
org.apache.tika.exception.TikaException: Unexpected RuntimeException from org.apache.tika.parser.jpeg.JpegParser@3e34efc2

这个警告可能不是直接原因,但会触发后续流程异常:

  • Liferay默认会调用Tika提取上传文件的元数据或文本内容,如果上传的JPEG文件本身损坏,或者Tika的JPEG解析器出现故障,可能会中断整个请求处理流程,导致表单参数未被正常解析。
  • 排查方法:尝试上传其他格式的文件(如PNG、TXT),如果能正常提交,说明是特定文件格式的解析问题;临时禁用Liferay的Tika提取功能(修改document.library.extractor.tika.enabled=false),测试是否恢复正常。

4. 网络层请求截断

如果前端有负载均衡或反向代理:

  • 代理服务器配置变更:比如Nginx的client_max_body_size设置过小,或者proxy_read_timeout超时时间过短,导致大文件上传时代理提前断开连接,服务器收到不完整的请求流。检查代理的相关配置参数。
  • 网络设备故障:内网环境下,防火墙、交换机的流量限制或故障,也可能导致请求传输中断。可以在服务器端抓包验证请求是否完整。

5. 依赖库或JVM隐性故障

  • jar包损坏:Commons FileUpload、Spring Portlet或Tika的相关jar包可能因磁盘IO问题损坏,导致解析逻辑异常。对比正常环境的jar包校验和,重新部署损坏的依赖。
  • JVM内存不足:处理大文件上传时,JVM堆内存不足会引发频繁GC甚至OOM,间接导致请求处理中断。检查JVM的GC日志,确认是否有内存相关异常。

内容的提问来源于stack exchange,提问作者SolS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 02:17:35