1、配置文件上传的属性:
#指定上传的文件保存的地址
pring.servlet.multipart.location=e:/springboot
#限制单个文件的大小(不适用任何单位,默认是byte)
spring.servlet.multipart.max-file-size=5242880
#限制所有文件的大小(可以使用MB单位)
spring.servlet.multipart.max-request-size=20MB
2、 编写文件上传的控制器(有三种方式可以实现文件上传):
(1)使用 HttpServletRequest :
@PostMapping("/upload/request")
@ResponseBody
public Map<String,Object> uploadRequest(HttpServletRequest httpServletRequest){
Map<String,Object> resultMap = new HashMap<>();
MultipartHttpServletRequest mr = null;
if (httpServletRequest instanceof MultipartHttpServletRequest) {
mr = (MultipartHttpServletRequest) httpServletRequest;
}else{
resultMap.put("success",false);
resultMap.put("message","上传失败!");
return resultMap;
}
MultipartFile multipartFile = mr.getFile("file");
String fileName = multipartFile.getOriginalFilename();
File file = new File(fileName);
try{
multipartFile.transferTo(file);
}catch (Exception e){
e.printStackTrace();
resultMap.put("success",false);
resultMap.put("message","上传失败!");
return resultMap;
}
resultMap.put("success",true);
resultMap.put("message","上传成功!");
return resultMap;
}
2、使用 MultipartFile :
@ResponseBody
@RequestMapping("/upload/multipart")
public Map<String,Object> uploadMultiPartFile(MultipartFile file){
Map<String,Object> resultMap = new HashMap<>();
String fileName = file.getOriginalFilename();
File dev = new File(fileName);
try {
file.transferTo(dev);
} catch (IOException e) {
e.printStackTrace();
resultMap.put("success",false);
resultMap.put("message","上传失败!");
return resultMap;
}
resultMap.put("success",false);
resultMap.put("message","上传成功!");
return resultMap;
}
3、使用 Servlet API 提供的 Part 接口:
@ResponseBody
@RequestMapping("/upload/part")
public Map<String,Object> uploadPart(Part file){
Map<String,Object> resultMap = new HashMap<>();
String fileName = file.getSubmittedFileName();
try {
file.write(fileName);
} catch (IOException e) {
e.printStackTrace();
resultMap.put("success",true);
resultMap.put("message","上传失败!");
return resultMap;
}
resultMap.put("success",true);
resultMap.put("message","上传成功!");
return resultMap;
}