2018-12-09

SpringBoot项目中文件上传,配置文件上传图片存放的虚拟路径的问题:

问题:在springboot项目中,如果是打包的项目,如果每次上传的图片都保存在项目中,那么经过时间的推移,项目的存在的图片肯定会越来越多,这样式不合理的,所有想到的办法是配置上传文件(图片)的虚拟路径(好处:项目不会随着时间的推移而越来越大,并且安全)

但是,我们保存到的文件通常不会放在C盘,因为C盘是系统盘,怕系统出现问题,导致我们自己上传的文件的安全没有办法保证;

问题解析:

  Springboot项目是一个以jar包的结构创建的, 所以配置的对象信息都是配置在application.yml的配置文件中;配置的对象信息需要做到两点,一:配置一个自定义的属性,用来在磁盘中存储我们自己保存的文件;如:  web.upload-path: C:\upload/   ----------->表示我们把从项目中上传的图片的文件路径映射到了C盘的upload的目录下;二:再配置一个项目的静态资源路径的配置信息:

resources:

  static-locations: classpath:/META-INF/resources,classpath:/resources/,classpath:/static/,classpath:/pulbic/,file:${web.upload-path}   #使用映射的方式将这个文件路径配置进来

页面上获取数据中的图片名称的显示方式:(前台使用org.thymeleaf.www框架)

在页面上的头上因引入thymeleaf的配置头信息;

  

图片显示代码:

例如:   假如项目的根路径是wukang,应用项目的端口是8080端口;那么就写成如下形式:

http://localhost:8080/wukang/xxxx.jpg    #注意:这里不需要再加上传文件的配置路径upload了,因为我们是把上传文件的路径已经映射到了C:/upload的路径下面了,所以我们直接项目根路径(wukang)和文件名称就可以了;


补充:

项目介绍:普通项目配置文件上传的虚拟路径问题:(这里强调的是非SpringBoot项目[普通的SSM项目-(spring,springMVC,Mybatis架构的项目)])

这样的项目是有Tomcat的,我们就是通过Tomcat的配置文件(server.xml)的文件中间中,找到的配置节点项,在节点的里面配置我们的配置项信息,添加如下配置

       

       

       

配置完成之后,假如现在项目中使用的JSP技术,那么显示的方式如下:

  #我们自己配置的项目虚拟路径的名称是什么,这里就加上对应前缀;   #普通项目的虚拟路径的配置就是这样的;   #也就是前面默认加上项目的根路径这些资源

http://localhost:8080/wukang/upload/fileName

你可能感兴趣的:(2018-12-09)