似乎Tomcat没有处理两个不同用户对同一多部分文件的并行上传。
测试
foo.pdf
的20MB文件foo.pdf
写入tmp文件夹结果
FileNotFoundException
而失败,因为tmp文件已被更快请求的清除任务删除。有没有办法避免这种情况 - 除了设置fileSizeThreshold
高于maxFileSize
所以它永远不会被写入磁盘。
旁注:这是一个Spring Boot 2.1应用程序,但这是无关紧要的,因为它默认使用此Servlet 3.0实现。
我有一个答案,但并不是真的令人满意。我们没有弄清楚如何使用Tomcat的Servlet 3.0实现。但是,一旦我们切换到Apache commons-fileupload,一切都很顺利。
所以,对于Spring (Boot) applications你会的
spring.servlet.multipart.enabled: false
CommonsMultipartResolver
的multipartResolver
类型的beancommons-fileupload
依赖项