首页 > 解决方案 > 我们可以计算用户在 Spring MVC 应用程序中上传文件时的校验和吗?

问题描述

我有一个部署在 Apache Tomcat 9 Webserver 中的 Spring MVC 应用程序。是否可以在用户上传文件时计算校验和?如果我想这样做,我什至应该从哪里开始寻找?

具体来说,我知道我可以@Controller在 Spring MVC 的一个类中计算校验和。但是,此时文件已完全上传到临时文件上传目录。具体来说,我在询问是否有一种方法可以计算各个部分的校验和,因为正在上传/创建 MultipartFile 对象。我是否必须覆盖 Apache Tomcat 行为?是否可以在不修改 Tomcat 源代码的情况下做到这一点?如果不是,那么对 Tomcat 源代码进行这种修改的潜在影响是什么?

我不了解网络服务器的复杂性,如果有人能告诉我从哪里开始寻找,我将不胜感激。

标签: springspring-mvctomcatfile-uploadmultipart

解决方案


是的,在拥有所有文件内容之前,您无法计算校验和。您可以访问前端部分吗?如果有,您可以通过 Javascript 计算校验和并将该信息放入您的请求标头中。

但是在这种情况下,你可能无法MultipartFile在 Spring 中使用组件,你可能需要直接使用 apache 上传库,你有更多的低级控制来允许你在开始获取文件内容流之前读取 header。


推荐阅读