美文网首页
上传文件到springboot的资源文件夹

上传文件到springboot的资源文件夹

作者: topshi | 来源:发表于2019-11-10 15:46 被阅读0次

坑:今天踩了坑,我上传到static下videos文件夹的文件,在浏览器访问不到,思前想后发现是项目没有刷新。
代码

private final String SAVE_PATH = "src\\main\\resources\\static\\videos" ;

byte[] bytes = new byte[inputStream.available()];
inputStream.read(bytes);
Path path = Paths.get(SAVE_PATH, file.getOriginalFilename());
Files.write(path, bytes);

访问资源

http://pichub.zicp.vip/videos/{filename}

解决的方法
配置资源处理器作虚拟映射

@Configuration
public class ResourceHanlderConfig  implements WebMvcConfigurer{
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/videos/**").addResourceLocations("file:src\\main\\resources\\static\\videos\\");
    }
}
  • addResourceHandler()里配置需要映射的文件夹,此处代表映射文件夹videos下的所有资源。
  • addResourceLocations()配置文件夹在系统中的路径,使用绝对路径,格式为"file:你的路径"

资源处理器主要是要做项目代码和资源文件夹的分离,可以将资源文件夹设置到项目之外的某个地方,避免资源被编译到项目中,正是因编译的关系,导致文件访问时是基于编译后的项目访问,当新上传了文件因其未被编译到项目中,因此无法识别。

相关文章

网友评论

      本文标题:上传文件到springboot的资源文件夹

      本文链接:https://www.haomeiwen.com/subject/oehabctx.html