解决方法: 给<form></form>表单中加enctype="multipart/form-data"这个属性。
设置了enctype="multipart/form-data"属性后,数据文件将会以二进制进行数据传输
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>success</title>
</head>
<body>
<h1>success</h1>
<form th:action="@{/upload}" method="post" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit">
</form>
</body>
</html>
@Controller
public class ImageController {
@RequestMapping("/upload")
public String upload(MultipartFile image,HttpSession session){
//不加enctype属性的话,程序运行到这里就会停止,因为没有接收到image,image为null
String filename = image.getOriginalFilename();
}
}
当我<form></form>表单没加enctype="multipart/form-data"这个属性的时候,controller层的匹配路径是对的,但是MultipartFile image报错,是null,如下图