前言:当我们使用文件上传技术将文件存放在数据库中,为了方便在不同的机器上都可以去使用这些图片而不去修改代码中的路径,常常会将存放在数据库中的路径存放成绝对路径,之后通过SpringBoot的虚拟路径访问到真实的路径。
ps:这里说一下为什么不直接存储绝对路径
1、绝对路径不适合移植,如果将tomcat从window上放到Linux上,绝对路径都得改。
2、目前大多数的主流浏览器如Chrome、Safari等浏览器禁止直接访问本地文件。
常见的配置虚拟路径的方法有
1、直接配置在properties中
2、编写配置类,继承WebMvcConfigurerAdapter重写其addResourceHandlers方法
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/upload/**")
.addResourceLocations("file:/Users/zby/image/st/upload/");
super.addResourceHandlers(registry);
}
我这里使用的是Linux的路径是/,window根据自己路径复制即可
ps:如果你的项目设置了content-path,如果访问文件必须要在图片的src前面加上你的content-path,否则是访问不到的。