1.配置 application.properties
设置绝对路径
# 文件上传地址
file.uploadFolder=/root/images/
#静态资源对外暴露的访问路径
file.staticAccessPath=/images/**
2. 添加配置类
@Configuration
public class MyConfigration extends WebMvcConfigurerAdapter {
/**
* 配置上传文件的目录
*/
@Value("${file.uploadFolder}")
private String uploadFolder;
@Value("${file.staticAccessPath}")
private String staticAccessPath;
@Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setLocation(uploadFolder);
return factory.createMultipartConfig();
}
/**
* 访问文件方法
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler(staticAccessPath).addResourceLocations("file:" + uploadFolder);
}
}
文件上传:
public static String uploadImage(MultipartFile file) throws IOException {
// 上传文件保存在当天日期命名的文件夹下
Date date = new Date();
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
String today = ft.format(date);
File path = new File("/root/images");
File parent = new File(path,today);
if (!parent.exists()){
parent.mkdirs();
}
File newPath = new File(parent,getNewName(file.getOriginalFilename()));
file.transferTo(newPath);
return newPath.toString();
}
文件保存地址:/root/images/2020-05-15/7a406aa8-67fb-457f-8840-21c8e77b6539.jpg
文件访问路径:http://域名/images/2020-05-15/7a406aa8-67fb-457f-8840-21c8e77b6539.jpg