0

我似乎无法弄清楚如何FileUploadInterceptor在 Struts2 中正确使用。我把所有东西都连线了,它确实有效。我可以指定文件扩展名和最大文件大小,它确实有效。问题如下:

  1. 我将最大文件大小指定为 100mb
  2. 当用户上传 110mb 的文件时,我可以看到该类使用帮助公共库JakartaMultiPartRequest处理文件上传。file-upload这发生在文件上传拦截器之前。
  3. 一旦用户等待几分钟并且文件上传完成,文件上传拦截器就会触发并告诉用户文件太大。

事件顺序有问题。我想查看内容长度标头并立即告诉用户文件太大(在上传之前)。我知道标题并不总是在那里,但如果它在那里,我想使用它。

除了覆盖JakartaMultiPartRequest类之外,我不明白如何做到这一点。

编辑:这是我理解的顺序:

  1. 用户通过文件上传向服务器发送多部分请求。
  2. Struts2 中的 JakartaMultiPartRequest 解析请求并将其上传到 Struts2 临时文件夹。
  3. 流程最终到达文件上传拦截器,在该拦截器中检查最大文件大小和文件扩展名。

从上面很明显,上传发生在第 2 步。整个文件现在都在服务器上,并且只有在文件上传拦截器检测到它太大之后。

4

0 回答 0