Spring MVC对文件上传做了简化,在Spring Boot中则是更进一步的简化,文件上传变得更加简单方便。
在Java中,文件上传涉及到两个组件,CommonsMultipartResolver,另一个是StandardServketMuiltipartResolver。CommonsMultipartResolver对应Commons-fileupload来处理multipart请求,StandardServketMuiltipartResolver则是基于Servlet3.0来处理multipart请求的。因此如果使用StandardServketMuiltipartResolver来实现文件的上传,是不需要额外的jar包的。Tomcat7.0之后就开始支持servlet3.0了。
单文件上传
upload.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>upload</title>
</head>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="uploadFile" value="请选择文件">
<input type="submit" value="上传">
</form>
</body>
</html>
FileUploadController.java
package xyz.fengqing11.hellospringboot;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest