我似乎无法弄清楚如何FileUploadInterceptor
在 Struts2 中正确使用。我把所有东西都连线了,它确实有效。我可以指定文件扩展名和最大文件大小,它确实有效。问题如下:
- 我将最大文件大小指定为 100mb
- 当用户上传 110mb 的文件时,我可以看到该类使用帮助公共库
JakartaMultiPartRequest
处理文件上传。file-upload
这发生在文件上传拦截器之前。 - 一旦用户等待几分钟并且文件上传完成,文件上传拦截器就会触发并告诉用户文件太大。
事件顺序有问题。我想查看内容长度标头并立即告诉用户文件太大(在上传之前)。我知道标题并不总是在那里,但如果它在那里,我想使用它。
除了覆盖JakartaMultiPartRequest
类之外,我不明白如何做到这一点。
编辑:这是我理解的顺序:
- 用户通过文件上传向服务器发送多部分请求。
- Struts2 中的 JakartaMultiPartRequest 解析请求并将其上传到 Struts2 临时文件夹。
- 流程最终到达文件上传拦截器,在该拦截器中检查最大文件大小和文件扩展名。
从上面很明显,上传发生在第 2 步。整个文件现在都在服务器上,并且只有在文件上传拦截器检测到它太大之后。