spring web项目与springboot项目使用request.getSession().getServletContext().getRealPath(“”)
之前在spring web项目中进行文件上传和下载时,使用getSession().getServletContext().getRealPath(“”)作为基础路径进行文件的存储和访问,功能可以正常实现。但是,在springboot项目中实现文件上传和下载,同样使用getSession().getServletContext().getRealPath(“”),打成jar包后运行。如果服务不重启,则功能正常实现,但当服务重启时,那么之前已经上传的文件就会访问不到。
经分析查找到,getSession().getServletContext().getRealPath(“”)在这两种项目中,获取到的路径是不一样的。在spring web项目中该方法获取的是项目的工程目录,springboot项目中获取的是临时文件路径。下面是项目过程中获取的文件路径:
String path = request.getSession()