将 spring 从旧版本升级到 Spring 6.0.4 后,
我注意到此文件已移动:
从这里(Spring docs 4.3.x for CommonsMultipartFile
6.0.4 上的 web不再 像 4.3.x 那样具有公共资源
这个文件移到哪里了?
我尝试将其包含在我的 pom 中,但没有帮助
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
更新
将 spring-web 版本从 6.0.0 降低到 5.3.25 解决了问题
,但 5.3.25 有 漏洞
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<!-- version>${spring.version}</version !-->
<!-- some issue CommonsMultipartFile is missing starting with v 6.0.0 !-->
<version> version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
dek*_*ard 13
根据Spring 6 中的https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-6.x
几个过时的基于 Servlet 的集成已被删除:例如 Apache Commons FileUpload (org.springframework.web.multipart.commons.CommonsMultipartResolver)
...
我们建议使用 org.springframework.web.multipart.support.StandardServletMultipartResolver 进行多部分文件上传
显然CommonsMultipartFile也消失了。
您可以commons-fileupload从项目中删除依赖项,并且在控制器中您可以使用MultipartFile与之前几乎相同的方法CommonsMultipartFile,或者MultipartHttpServletRequest:
@RestController
class MyController {
@PostMapping(path = "/upload)
public ResponseEntity<SomeResult> upload(... , @RequestPart MultipartFile file1) {
...
}
@PostMapping(path = "/upload2")
public ResponseEntity<SomeResult> upload2(MultipartHttpServletRequest request,
...) {
MultipartFile multipartFile = request.getFile("file1");
InputStream inputStream = multipartFile.getInputStream();
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8314 次 |
| 最近记录: |