<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>
spring.servlet.multipart.max-request-size=10MB spring.servlet.multipart.max-file-size=10MB
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>
@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()); //在开发测试模式时,得到的地址为:{项目跟目录}/target/static/images/upload/ //在打包成jar正式发布时,得到的地址为:{发布jar包目录}/static/images/upload/ return upload.getAbsolutePath(); } }
选择上传文件进行上传