MultipartFile是springMVC的jar包,不需要其它坐标,可以直接使用
一. 新建controller
@RequestMapping("/uploadTest1")
public String test1(@RequestParam("imgFile") MultipartFile file, HttpServletRequest request){
//获取上传文件名,包含后缀
String originalFilename = file.getOriginalFilename();
//获取后缀
String substring = originalFilename.substring(originalFilename.lastIndexOf("."));
//保存的文件名
String dFileName = UUID.randomUUID()+substring;
//保存路径
//springboot 默认情况下只能加载 resource文件夹下静态资源文件
String path = "D:/workspace/demo2/src/main/resources/static/image/";
//生成保存文件
File uploadFile = new File(path+dFileName);
System.out.println(uploadFile);
//将上传文件保存到路径
try {
file.transferTo(uploadFile);
} catch (IOException e) {
e.printStackTrace();
}
return "上传"+dFileName+"成功";
}
说明:
1. http://localhost:8080/uploadTest1
2. http请求方式实现文件上传条件:1.post请求 2.form表单提交 3.multipart/form-data 协议类型http请求方式
3. 上传后查看路径 http://localhost:8080/image/文件名.后缀
二. 限制上传文件大小
在启动类application.java添加@bean方法
/**
* 限制上传文件大小
*/
@Bean
public MultipartConfigElement multipartConfigElement(){
MultipartConfigFactory factory = new MultipartConfigFactory();
//单个文件最大 5m 可以使用读取配置
factory.setMaxFileSize("5120KB"); //KB,MB
/// 设置总上传数据总大小 50m
factory.setMaxRequestSize("512000KB");
return factory.createMultipartConfig();
}
说明:
可以将代码中限制大小的值存放到配置文件中,以读取配置的形式加载进来.