请教大神关于在idea上上传文件的路径问题

自己尝试了下在idea上写了一个layui+spring mvc的文件上传功能,在保存文件的时候发现这样一个问题:
idea在编译项目的时候,会在项目的目录下面默认创建一个out目录来存储.class文件,这个out目录也会成为这个项目的工程目录。
所以当我们上传文件,在保存文件时,如果我们用request.getSession().getServletContext().getRealPath("/"),获取到的是这个out目录(例如:F:\springjpa\out\artifacts\springjpa_war_exploded) 而不是项目的web目录,导致文件会保存到out目录里面,这样我们在前台的时候怎么获取保存在out目录里面的图片啊?

或者说应该怎么做才能把文件保存到web目录里面



#Java##Spring#
全部评论
不用了,我已经找到了自己为什么在前台获取不到文件的错误了。 其实是我自己一直陷入一个误区。自己的思考点一直是错误的。 首先自己在spirng mvc的配置文件里面配置了这样一条静态资源映射: <mvc:resources mapping = " /upload/** "   location = "/WEB-INF/upload " /> 然后在开发文件上传功能的时候,我错误的认为,前台在访问静态资源的时候,是获取web目录下的/WEB-INF/upload/目录下的文件,而使用request.getSession().getServletContext().getRealPath("/")来创建上传文件时,却是将文件放在了out目录下面,这个时候我就一直在纠结,“我要取web目录下的upload目录文件,但是你将文件保存到out目录下面,我怎么取得到啊?”。 其实我这想法就是错误的,当我们部署tomcat启动项目之后,在浏览器上获取的静态资源,并不是web目录下的静态资源,而是取运行之后在out目录的编译文件,所以其实一切都应该以out目录为准,而不是以web目录为准。
点赞 回复
分享
发布于 2019-07-10 16:20
而我在前台取不到文件数据的原因,在保存上传文件的时候,在新建upload文件夹的时候,我没有把upload文件夹保存在WEB-INF目录里面,而是跟WEN-INF目录同级,而静态资源映射 <mvc:resources mapping = " /upload/** "   location = "/WEB-INF/upload " /> 又是将/upload/访问映射成/WEB-INF/upload,所以前台肯定取不到数据了。
点赞 回复
分享
发布于 2019-07-10 16:29
阿里巴巴
校招火热招聘中
官网直投

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务