今天写了个SpringMvc上传文件的接口 运行后报错
附上接口代码
@PostMapping("/upload")public String handleFileUpload(@RequestPart("file") MultipartFile file) {try {// 保存上传的文件到服务器byte[] bytes = file.getBytes();Path path = Paths.get(Objects.requireNonNull(file.getOriginalFilename()));Files.write(path, bytes);} catch (IOException e) {e.printStackTrace();return "err";}return "success";//只做测试}
附上 请求截图
出现这种情况通常有两种情况:
- @RequestPart(“file”) 里面的file和前端请求的name=”file”的值 不同 (见上图)
- 没有配置Spring MVC的文件上传解析器
很明显 这里第一种情况不满足 解决第二种情况的方法有多种 我采用自定义配置类 (注意加上@Configeration 声明为配置类)
@Configuration // 声明为配置类public class AppConfig {@Bean // 声明为 Beanpublic CommonsMultipartResolver multipartResolver() {CommonsMultipartResolver resolver = new CommonsMultipartResolver(); // 创建 CommonsMultipartResolver 实例resolver.setMaxUploadSize(10485760); // 设置最大上传文件大小为 10 MBresolver.setDefaultEncoding("UTF-8"); // 设置默认编码为 UTF-8return resolver; // 返回创建的实例}}
加入配置类 再次发送请求
接口正常响应
注意接口不能用@RequestBody 否则会抛出空指针异常