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

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

doncha
doncha 作者:牛客345973616号 链接:https://www.nowcoder.com/discuss/204972来源:牛客网 不用了,我已经找到了自己为什么在前台获取不到文件的错误了。 其实是我自己一直陷入一个误区。自己的思考点一直是错误的。 首先自己在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目录为准。
11 个月之前 回复

2个回答

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

应该是没有问题的,因为你这是开发环境,开发测试时的部署路径就是这个 exploded 目录的。
如果不放心,可以测试下将 war 包部署到 Servlet 容器下试试。

doncha
doncha 我知道自己的错误在哪里了。纠结在一个小错误半天,还是不够细心
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐