我们在上传文件的时候会指定一个服务器的路径,这个路径不能写死在代码中,所以我们会提取出来:
application.yml
那么上传之后怎么访问到文件呢?
我们需要将静态资源暴露出去,新建一个 MVC 配置类:
package com.lsu.file.controller.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 文件上传配置
*
* @Author wang suo
* @Date 2020/10/17 0017 14:30
* @Version 1.0
*/
@Configuration
public class SpringMvcConfig implements WebMvcConfigurer {
@Value("${file.path}")
private String path;
/**
* SpringBoot 静态资源配置
*
* @param registry 注册类
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/f/**").addResourceLocations("file:" + path);
}
//http://127.0.0.1:9000/file/f/teacher/Nz1H76bO-头像2.jpg
}
访问路径可以这样写:
http://127.0.0.1:9000/file/f/teacher/Nz1H76bO-头像2.jpg
这样写即相当于直接访问 D:/fileUpload/imooc/teacher/Nz1H76bO-头像2.jpg
了。
因为那个 f
就等价于 D:/fileUpload/imooc/
。