pom配置文件配置文件上传单个文件最大不超过10m,所有文件不超过100m
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=100MB
1.编写简单的上传页面
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" >
<input type="submit">
</form>
</body>
</html>
2.编写页面跳转
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class JumpController {
@GetMapping("/goUpload")
public String goUpload(){
return "upload";
}
}
3.获取文件并保存文件
package com.pefung.demo.controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
@RestController
public class UploadController {
@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) throws IOException {
if (!file.isEmpty()){
String originalFilename = file.getOriginalFilename();
file.transferTo(new File("D://123//"+originalFilename));
}
return "ok";
}
}
4.多文件上传
页面代码:
<form action="/upload2" method="post" enctype="multipart/form-data">
<input type="file" name="file" multiple>
<input type="submit">
</form>
处理代码:
@PostMapping("/upload2")
public String upload2(@RequestParam("file") MultipartFile[] file) throws IOException {
if (file.length>0){
for (MultipartFile f:file){
String originalFilename = f.getOriginalFilename();
f.transferTo(new File("D://123//"+originalFilename));
}
return "文件上传成功";
}
return "ok";
}
file.getOriginalFilename():获取上传文件的名字
file.transferTo():保存文件
input中加上multiple属性可以上传多个文件