前端HTML
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<form enctype="multipart/form-data" method="post" action="/file/upload">
文件:<input type="file" name="file"/>
<input type="submit" value="上传"/>
</form>
<form enctype="multipart/form-data" method="post" action="/file/uploadPathName">
文件:<input type="file" name="file"/>
指定路径:<input type="text" name="pathName"/>
<input type="submit" value="上传"/>
</form>
</body>
</html>
后端代码
@RestController
@RequestMapping("/file")
public class FileController extends BaseController {
private static final Logger log = LoggerFactory.getLogger(FileController.class);
@RequestMapping("/upload")
public Object upload(@RequestParam("file") MultipartFile file, HttpServletRequest request){
HashMap<String, Object> map = new HashMap<>();
try {
//获取项目所在目录路径
File path = new File("");
String filePath = path.getAbsolutePath()+"/static/";
// 文件名
String fileName = file.getOriginalFilename();
log.info("文件名: " + fileName);
// 文件后缀
String suffixName = fileName.substring(fileName.lastIndexOf("."));
log.info("文件后缀名: " + suffixName);
//创建文件
File dest = new File(filePath + fileName);
file.transferTo(dest);
map.put("success", true);
return map;
} catch (IOException e) {
map.put("error", e.getMessage());
e.printStackTrace();
}
return map.put("success", false);
}
@RequestMapping("/uploadPathName")
public Object uploadPathName(@RequestParam("file") MultipartFile file, HttpServletRequest request,String pathName){
HashMap<String, Object> map = new HashMap<>();
try {
File path = new File(pathName);
if(!path.exists()) {
path.mkdirs();
}
// 文件名
String fileName = file.getOriginalFilename();
log.info("文件名: " + fileName);
// 文件后缀
String suffixName = fileName.substring(fileName.lastIndexOf("."));
log.info("文件后缀名: " + suffixName);
//创建文件
File dest = new File(pathName + fileName);
file.transferTo(dest);
map.put("success", true);
return map;
} catch (IOException e) {
map.put("error", e.getMessage());
e.printStackTrace();
}
return map.put("success", false);
}
}
application.yml 配置
spring:
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB