SpringBoot配置图片访问动态路径

配置SpringBoot部署图片访问路径

网上大概是基于tomcat server更改的配置感觉很麻烦,所以写了个拦截器动态访问图片。

package com.kero99.filter;

import java.io.File;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MvcConfig implements WebMvcConfigurer {
	 @Override
	    public void addResourceHandlers(ResourceHandlerRegistry registry) {
		 /**
		  * @author ygc
		  * 动态获取项目路径
		  * 
		  * 因为部署项目后可能放在不同磁盘所以改为动态路径配置
		  */
		 File file=new File("");
		 String path=file.getAbsolutePath().substring(0,file.getAbsolutePath().indexOf(File.separator));
		 	//判断操作系统
	        String os = System.getProperty("os.name");
		     if (os.toLowerCase().startsWith("win")) {  //如果是Windows系统		    	 
		    	 //项目相对路径+项目动态绝对路径  
		        registry.addResourceHandler("/soil_event_note_upload_path/**").
		          addResourceLocations("file:"+path+"/soil_event_note_upload_path/");
		        registry.addResourceHandler("/image_info_path/**").
		          addResourceLocations("file:"+path+"/image_info_path/");
		        registry.addResourceHandler("/file_info_path/**").
		          addResourceLocations("file:"+path+"/file_info_path/");
		     }else{//linux和mac系统
		        registry.addResourceHandler("/soil_event_note_upload_path/**").
		          addResourceLocations("file:"+path+"/soil_event_note_upload_path/");
		        registry.addResourceHandler("/image_info_path/**").
		          addResourceLocations("file:"+path+"/image_info_path/");
		        registry.addResourceHandler("/file_info_path/**").
		          addResourceLocations("file:"+path+"/file_info_path/");
		     }
	 	}
}

你可能感兴趣的:(Java,程序式界)