场景:图片上传到自定义的目录中(如“C:\Users\arthu\Workspace\upload\”),并且上传之后可以通过url请求获取到(如:“http://域名:端口/工程/upload/2019/1/25/20190125142325498.jpg”)

 

1.SpringBoot默认目录:

SpringBoot默认static目录下面的静态资源是可以直接访问的。

如果如果上传文件的存放路径直接定位到工程下面的static目录下,也是可以直接访问到的(如:”http://域名:端口/工程/imgs/20190125142325498.jpg“,imgs为工程static目录下的子目录)

 

2.自定义上传目录

需要增加如下配置:

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 WebConfig implements WebMvcConfigurer  {
    
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/upload/**").addResourceLocations("file:C:/Users/arthu/Workspace/upload/");
        }
}


以上代码的逻辑表示请求静态资源的URL,如果是以:http://域名:端口/工程/upload/开头的,都会去C:/Users/arthu/Workspace/upload/这个路径下去查找静态资源,其中"file:"前缀是必须的。