1. pom.xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
2. Application.properties
spring.servlet.multipart.max-request-size=10MB spring.servlet.multipart.max-file-size=10MB
3. html
upload.html
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <body> <h1>Spring Boot file upload example</h1> <form method="POST" action="/upload" enctype="multipart/form-data"> <input type="file" name="file" /><br/><br/> <input type="submit" value="提交" /> </form> </body> </html>
resut.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<body>
<div th:if="${message}">
<h2 th:text="${message}"/>
</div>
</body>
</html>
4. SampleController
@Controller
public class SampleController {
@GetMapping("/")
public String upload() {
return "upload";
}
@RequestMapping("/result")
public String result() {
return "result";
}
@PostMapping("/upload")
public String singleFileUpload(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes) {
if (file.isEmpty()) {
redirectAttributes.addFlashAttribute("message", "Please select a file to upload");
return "redirect:result";
}
try {
// Get the file and save it somewhere
byte[] bytes = file.getBytes();
Path path = Paths.get(uploadDirectory() + "/" + file.getOriginalFilename());
Files.write(path, bytes);
redirectAttributes.addFlashAttribute("message",
file.getOriginalFilename() + " upload success");
} catch (IOException e) {
e.printStackTrace();
}
return "redirect:/result";
}
private String uploadDirectory() throws FileNotFoundException {
//獲取跟目錄
File path = new File(ResourceUtils.getURL("classpath:").getPath());
if(!path.exists()) path = new File("");
System.out.println("path:"+path.getAbsolutePath());
//如果上傳目錄為/static/images/upload/,則可以如下獲取:
File upload = new File(path.getAbsolutePath(),"static/upload/");
if(!upload.exists()) upload.mkdirs();
System.out.println("upload url:"+upload.getAbsolutePath());
//在開發(fā)測試模式時,得到的地址為:{項目跟目錄}/target/static/images/upload/
//在打包成jar正式發(fā)布時,得到的地址為:{發(fā)布jar包目錄}/static/images/upload/
return upload.getAbsolutePath();
}
}
5.訪問 localhost:8080/
選擇上傳文件進行上傳






