我想知道当您使用 StandardServletMultipartResolver 发送多部分请求时自动创建临时文件的代码在哪里?
我可以禁用该行为吗?我想决定它的存储方式和存储位置。我不想让春天为我做这件事。
我正在考虑创建自己的解析器,但找不到有关如何禁用弹簧默认行为的信息。
引用 API文档 StandardServletMultipartResolver
不支持解析器级别的临时文件配置,而是在 servlet 注册级别完成 -
为了使用基于 Servlet 3.0 的多部分解析,您需要在 中使用“multipart-config”部分
web.xml
或MultipartConfigElement
在编程 servlet 注册中标记受影响的 servlet,或者(在自定义 servlet 类的情况下)可能带有MultipartConfig
注释你的 servlet 类。 需要在该servlet 注册级别应用最大大小或存储位置
等配置设置;Servlet 3.0不允许在级别设置它们。MultipartResolver
因此,您可以在 servlet 上对其进行配置,也可以切换到CommonsMultipartResolver
支持设置开箱即用的临时目录,因为它继承自CommonsFileUploadSupport.setUploadTempDir
(请参阅此处和此处的相应文档)